当h4包含尾部文字时隐藏父DIV

时间:2018-12-13 22:38:56

标签: javascript jquery html

我想做的是,如果h4包含单词“ bulk”,则尝试隐藏以下父div(它将隐藏名为“ eB cer”的div类)。

<div class="eB cer">
<h4>Bulk Load Files to CERs</h4>
<div class="tooltip"><b>Description: </b>You will add files to your CERs using the Bulk Load and Attribute Update Utility.<span class="tooltiptext">In this module you will learn how to add files to your CERs in bulk and modify any attributes as needed.</span>
</div>
<p><b>Link: </b><a href="http://ebassets.network.lan/eBPrdSC1/eB%20Help/eB%20Help__54.html" target="_blank">Bulk Load Files to CERs</a></p>
</div>

我有这个,它隐藏了h4,但不是整个div。

var searched_string = "eB cer"; 
var foundmatch = [];

for(i=0; i < leftFilteredArray.length; i++){
    if(leftFilteredArray[i].match(searched_string)){
        foundmatch.push(leftFilteredArray[i]);
        $("div h4:contains('" + searched_string +"')").hide();
    }

有人建议我在做什么错吗?

2 个答案:

答案 0 :(得分:2)

您可以使用indexOf()来返回找到指定字符串的第一个索引。否则返回-1。

if($('.eB.cer>h4').text().toLowerCase().indexOf('bulk')!==-1)
  $('.eB.cer').hide()

答案 1 :(得分:1)

为了重新创建您的情况,我最终查看了jQuery行。然后,将其插入其余的代码中。这就是我的工作。

var searched_string = "Bulk"; 
var foundmatch = [];

for(i=0; i < leftFilteredArray.length; i++){
    if(leftFilteredArray[i].match(searched_string)){
        foundmatch.push(leftFilteredArray[i]);
        $("div h4:contains('" + searched_string +"')").parent().hide();
    }
}

此行将文本设置为小写,以减少问题。

var searched_string = "Bulk"; 
var foundmatch = [];

for(i=0; i < leftFilteredArray.length; i++){
    if(leftFilteredArray[i].match(searched_string)){
        foundmatch.push(leftFilteredArray[i]);
        // $("div h4:contains('" + searched_string +"')").parent().hide();
        if( $(".eB.cer h4").html().toLowerCase().indexOf(searched_string.toLowerCase()) > -1) {
            $(".eB.cer").hide();
        }
    }
}