为什么jquery $()。find()返回false positive

时间:2014-10-06 15:24:48

标签: jquery

只是一个小难题为什么会...

    $( document ).ready( function(){
if ($("body").find( ".bogusCrap" )) {
        alert("FOUND bogusCrap");
}

})

...回归真实?

以下检查按预期工作:

$(".bogusCrap").length > 0 

按预期工作

1 个答案:

答案 0 :(得分:3)

$("body").find( ".bogusCrap" )返回一个类似于数组的空对象。对象即使是空的,也不是 falsy 值,它们是 truthy 值。这意味着简单来说,空对象(或空数组)等于true

您可以自己尝试一下:

if ( [] )
    alert("True");

if ( {} )
    alert("True");

正如Felix Kling在下面的评论中指出的那样,$("body").find( ".bogusCrap" )实际上会返回jQuery object,但我上面所说的仍然适用。