jQuery的,发现没有ID孩子的div没有类,但用文字

问题描述:

我有以下代码:jQuery的,发现没有ID孩子的div没有类,但用文字

<div> 
    <div> 
     <div> 
      <div> 
       <div> I am here </div> 
       <div> Another div</div> 
       <div> Find me I am here </div> 
      </div> 
     </div> 
    </div> 
</div> 

我试图隐藏其文本格“找我,我就在这里

<script language="t" type="text/javascript"> 
$(document).ready(function(e) {  
    $("div:contains('Find me i am here')").css("display","none"); 
}); 
</script> 

但上面的代码不适合我吗? 请帮忙。 由于事先

您还可以使用if条件与.each()方法,这样做,会比使用:contains()因为:contains()将查找文本,即使它withing另一个字符串甚至精确,所以,即使会匹配

东西
<div>Hey I don't want to hide this Find me i am here</div> 

Ummm you don't need that right?信用为小提琴:@Arun P约翰尼拉

这样你就可以请参考以下解决方案..

$(document).ready(function(e) { 
    $('div').each(function() { 
     if($(this).html() == ' Find me i am here ') { 
      $(this).css({'display': 'none'}); 
     } 
    }); 
}); 

Demo


注:前和if条件进行比较后的字符串我有一个空间,它很重要,如果你想让它不太严格,然后使用.trim()从字符串的开始和结尾处切割空白区域。


另外,如果你正在寻找的目标具有文本,但有NOclassid属性的元素,比使用下面

$(document).ready(function(e) { 
    $('div:not([class]):not([id]').each(function() { 
     //Select only div which doesn't have class or id attributes 
     if($(this).html() == ' Find me i am here ') { 
      $(this).css({'display': 'none'}); 
     } 
    }); 
}); 

Demo 2

+0

'.filter()'会在这种情况下一个更好的选择。对。? –

+0

@RajaprabhuAravindasamy可能是:) –

+0

我只是在寻找文本,当然在该div中没有​​html,所以,我已经在你的代码中将.html()更改为.text(),它现在对我来说真的很有用。谢谢兄弟 –

,因为这将返回所有祖先的div也,你需要从返回的集合中筛选出与儿童的div :contains

$("div:contains('Find me i am here'):not(:has(*))").hide(); 

演示:Fiddle

您可以使用:contains来获取元素,请参阅下面的代码。

$('div:contains("test")').hide(); 

代码,您可以添加.html()方法本身的回调函数

data在div中保存html内容,然后将其与您搜索的文本进行比较。

$(document).ready(function(e) {  
    $('div').html(function(t,data) { 
     if(data ===' Find me i am here ') 
     $(this).css("display","none"); 
    }); 
}); 

这里是小提琴http://jsfiddle.net/YSkE9/7/