我有以下代码:
<div>
<div>
<div>
<div>
<div> I am here </div>
<div> Another div</div>
<div> Find me I am here </div>
</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>
但上面的代码对我不起作用? 请帮忙。 提前谢谢
答案 0 :(得分:4)
您还可以使用if
条件和.each()
方法进行操作,甚至比使用:contains()
更精确,因为:contains()
会查找该文本,即使它是使用另一个字符串,这样甚至可以匹配
<div>Hey I don't want to hide this Find me i am here</div>
Ummm you don't need that right? 小提琴:@Arun P Johny
所以你可以参考下面的解决方案..
$(document).ready(function(e) {
$('div').each(function() {
if($(this).html() == ' Find me i am here ') {
$(this).css({'display': 'none'});
}
});
});
注意:我在if
条件中的字符串之前和之后有一个空格用于比较,因为它很重要,如果你想让它不那么严格,那么使用.trim()
来切割从字符串的开头和结尾开始的空格。
此外,如果您要定位具有该文字但具有否 class
或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'});
}
});
});
答案 1 :(得分:2)
因为它也将返回所有祖先div,你需要从:contains
$("div:contains('Find me i am here'):not(:has(*))").hide();
演示:Fiddle
答案 2 :(得分:1)
您可以向.html()
方法本身添加回调函数
data
在div中包含html内容,然后将其与您搜索的文本进行比较。
$(document).ready(function(e) {
$('div').html(function(t,data) {
if(data ===' Find me i am here ')
$(this).css("display","none");
});
});
答案 3 :(得分:0)
您可以使用:contains
获取元素,请参阅以下代码。
$('div:contains("test")').hide();