<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>
直接在其自身或其子项内部查找(并添加类)不包含文本的标签。
这很好用,我确实必须从你的一个段落中清空文本来测试:
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');
}
});
如果您只想检查段落内部,应该可以工作。