<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();