<div>
<p><a href="#">link</a> some text</p>
<p><a href="#">link</a></p>
<p><a href="#">link</a> some text</p>
<p><a href="#">link</a></p>
</div>
<p>
テキストを含まないタグを、それ自体またはその子の内部で直接検索 (および addClass に追加) したいと考えています。
これは問題なく動作します。テストするために、段落の 1 つからテキストを空にする必要がありました。
var $eles = $('p').filter(function() {
return $(this).text().length == 0;
});
$eles.addClass("foo");
例の a タグには常にテキストが含まれているため、問題の説明に誤りがあると思います。
私の知る限り、直接のコンテンツがあるかどうかを確認できる標準セレクターはありませんが、これを試すことができます:
$('p').each(function(){
var p = $(this).clone();
p.children().remove();
if(p.text().length){
$(this).addClass('gotcha');
}
});
段落の内部のみをチェックしたい場合に機能するはずです。