jquery - 为什么 jquery $().find() 返回误报

标签 jquery

只是一个小谜题,为什么会......

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

})

...返回 true?

以下检查按预期工作:

$(".bogusCrap").length > 0 

按预期工作

最佳答案

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

你可以自己尝试一下:

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

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

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

关于jquery - 为什么 jquery $().find() 返回误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26219511/

相关文章:

javascript - 按钮或隐藏文件的 html 验证

javascript - 如何检查 <div> 元素是否已添加到页面 - jquery

javascript - 在 Firefox 中单击按钮关闭当前选项卡

javascript - jQuery 模态窗口仅适用于 Chrome,但不适用于 FF 和 IE9

javascript - 这篇 jQuery 教程有必要吗?

Jquery显示和隐藏div

jquery - 获取iframe内容的更改事件?

jquery - 使用 JSFiddle 时从 javascript 控制台调用 jQuery

jquery - 关闭 jQuery Accordion 自动调整大小

javascript - Jquery 数字字段的最大值验证