检查div是否存在jquery

时间:2011-08-01 13:34:48

标签: jquery html exists

  

可能重复:
  Is there an “exists” function for jQuery

是的,我知道这已被问到很多。 但是,它让我感到困惑,因为谷歌搜索结果显示了不同的方法(如下所列)

$(document).ready(function() {
    if ($('#DivID').length){
        alert('Found with Length');
    }

    if ($('#DivID').length > 0 ) {
        alert('Found with Length bigger then Zero');
    }

    if ($('#DivID') != null ) {
        alert('Found with Not Null');
    }
});

3中哪一个是检查div是否存在的正确方法?

编辑: 看到人们不想从三种不同的方法中学习什么是更好的方法,这是一个很小的问题。这个问题实际上并不是“如何检查div是否存在”,而是关于哪种方法更好,如果有人可以解释,为什么它更好?

3 个答案:

答案 0 :(得分:177)

第一个是最简洁的,我会顺其自然。前两个是相同的,但第一个只是那么短,所以你将节省字节。第三个是完全错误的,因为该条件将始终评估为真,因为该对象永远不会为null或虚假。

答案 1 :(得分:93)

如果您只是检查是否存在ID,则无需进入 jQuery ,您只需:

if(document.getElementById("yourid") !== null)
{
}
如果无法找到,则

getElementById会返回null

Reference

如果您计划稍后使用 jQuery 对象,我建议:

$(document).ready(function() {
    var $myDiv = $('#DivID');

    if ( $myDiv.length){
        //you can now reuse  $myDiv here, without having to select it again.
    }


});

选择器总是返回 jQuery 对象,因此不需要检查null(如果有需要的边缘情况,我会感兴趣检查null - 但我认为没有。

如果选择器没有找到任何内容,那么length === 0是“falsy”(转换为bool时为false)。因此,如果它找到了某些东西,那么它应该是“真实的” - 所以你不需要检查> 0.只是因为它的“真实性”

答案 2 :(得分:9)

正如karim79所说,第一个是最简洁的。但是我可以说第二个更容易理解,因为一些Javascript / jQuery程序员不明白/不知道在if语句中非零/ false值被评估为true。因此,第三种方法是不正确的。