jQuery - 检查元素是否是父元素

时间:2012-12-01 16:04:07

标签: jquery

我知道过滤它是

$("div:parent")

但如何查看该元素是否是使用遍历的父元素?

3 个答案:

答案 0 :(得分:2)

如果您对$('div:parent')不满意,并希望显式调用jQuery遍历方法,则可以使用

$('div').filter(function(){return $(this).children().length})

如果需要,我们可能会建议更慢或更不可读。

请注意,这与使用childNodes不完全相同。如果您想查看是否没有内容(包括文字),您可能更喜欢

$('div').filter(function(){return $(this).contents().length})

答案 1 :(得分:1)

尝试使用:has

$('div:has(*)')

.has()

$('div').has('*')

如果您想检查它是否有任何内容..请使用:empty选择器

$('div:empty')

答案 2 :(得分:0)

您要使用的是:空 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项目有换行符,因此仍然认为它不是':空'标记