<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');
  }
});

如果您只想检查段落,则应工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top