我知道过滤它是
$("div:parent")
但是我如何使用遍历来查看元素是否是父元素?
如果您对 jQuery 不满意$('div:parent')
,并且想显式调用 jQuery 遍历方法,则可以使用
$('div').filter(function(){return $(this).children().length})
如果需要,我们可能会提出更慢或可读性更低的建议。
请注意,这与使用 childNodes 并不完全相同。如果你想看看有没有内容,包括文字,你可能更喜欢
$('div').filter(function(){return $(this).contents().length})
您要使用的是:empty http://api.jquery.com/empty-selector/
但要小心,如果空里面有空格,则不会认为它们是空的。所以你可以制作另一个选择器/表达式
工作演示:http: //jsfiddle.net/fedmich/7WdmD/
$(function() {
$.extend($.expr[':'],{
empty_noWhiteSpace: function(a,i,m){
return $.trim(a.innerHTML) === '';
}
});
$('ul li:empty_noWhiteSpace').addClass('is_empty');
});?
因为当您有这样的列表项时
</li>
<li>
not empty
</li>
第一个 li 项目有换行符,所以它仍然被认为不是':empty'标签