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