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'});
}
});
});
注:前和if
条件进行比较后的字符串我有一个空间,它很重要,如果你想让它不太严格,然后使用.trim()
从字符串的开始和结尾处切割空白区域。
另外,如果你正在寻找的目标具有文本,但有NOclass
或id
属性的元素,比使用下面
$(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'});
}
});
});
答
,因为这将返回所有祖先的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");
});
});
'.filter()'会在这种情况下一个更好的选择。对。? –
@RajaprabhuAravindasamy可能是:) –
我只是在寻找文本,当然在该div中没有html,所以,我已经在你的代码中将.html()更改为.text(),它现在对我来说真的很有用。谢谢兄弟 –