<div>
<div>test</div>
</div>
$("div:contains('test')").css('display','none');
我知道我会为此做好准备。问题是,当运行时,由于嵌套而隐藏所有div。如何使父div不被隐藏?我只能使用1.2.6
答案 0 :(得分:3)
$("div:contains('test'):not(:has(div))").hide();
答案 1 :(得分:1)
如果您想要一个优雅的解决方案,请定义一个新的选择器。不幸的是,:empty
是不够的,因为任何文本节点子节点都不为空。
$.extend($.expr[':'], {
leaf: function(elem, i, match) {
return $(elem).children().length == 0;
}
});
然后你可以这样做:
$("div:leaf:contains('test')").hide();