空测试失败

时间:2015-03-26 10:06:44

标签: javascript php

我与 done_by 类有不同的跨度,我想知道它们是否为空。

$('.done_by').each(function()
    {           
        var emptyTest = $(this).is(':empty');
        console.log(emptyTest);         
    });

我只有'错误'回复。

但是,当我检查我的页面时,我有以下代码 enter image description here

正如你所看到的,有些是空的,有些是空的。但为什么我的日志控制台中只有 false 响应?

我尝试使用.length属性和if else语句,但我遇到了同样的问题。

1 个答案:

答案 0 :(得分:1)

因为即使元素中有文本节点,:empty也会返回false。因此,如果您创建一个像<span class="done_by"> </span>这样的元素,那么有一个空文本节点作为其子节点,因此它不会为空。要获得空节点,您需要<span class="done_by"></span>

因此,在大多数基础上,您可以使用.has('*')来查看它是否具有元素后代

$('.done_by').has('*').each(function() //or $('.done_by:has(*)').each()
{           
    var emptyTest = $(this).is(':empty');
    console.log(emptyTest);         
});