2
<div>
    <div>test</div>
</div>

$("div:contains('test')").css('display','none');

私はこれに自分自身を蹴るつもりだと知っています。問題は、これを実行すると、ネストのためにすべてのdivが非表示になることです。親divが非表示にならないようにするにはどうすればよいですか?1.2.6の使用に制限されています

4

2 に答える 2

3
$("div:contains('test'):not(:has(div))").hide();
于 2010-03-31T08:06:41.530 に答える
1

洗練されたソリューションが必要な場合は、新しいセレクターを定義してください。残念ながら、:emptyテキスト ノードの子を持つものは空ではないため、これでは十分ではありません。

$.extend($.expr[':'], {
  leaf: function(elem, i, match) {
    return $(elem).children().length == 0;
  }
});

そして、次のことができます。

$("div:leaf:contains('test')").hide();
于 2010-03-31T08:17:31.840 に答える