查找该元素是否包含X但不包含Y(jQuery)
题
<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>
我想找到(和addClass) <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');
}
});
如果您只想检查段落,则应工作。
不隶属于 StackOverflow