我与 done_by 类有不同的跨度,我想知道它们是否为空。
$('.done_by').each(function()
{
var emptyTest = $(this).is(':empty');
console.log(emptyTest);
});
我只有'错误'回复。
但是,当我检查我的页面时,我有以下代码
正如你所看到的,有些是空的,有些是空的。但为什么我的日志控制台中只有 false 响应?
我尝试使用.length属性和if else语句,但我遇到了同样的问题。
答案 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);
});