检查一个div是否存在与jquery

可能重复:
有没有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是否存在”,而是关于哪种方法更好,如果有人能够解释,为什么它更好?


首先是最简洁的,我会去那。 前两个是相同的,但第一个是短一点,所以你会节省字节。 第三个是明显错误的,因为这个条件总是会评估真实的,因为对于这个问题这个对象永远不会是空的或者是虚假的。


如果你只是检查一个ID的存在,就不需要进入jQuery ,你可以简单地:

if(document.getElementById("yourid") !== null)
{
}

如果无法找到getElementById返回null

参考。

不过,如果你打算以后使用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是“虚假”(当转换为布尔错误时)。 所以,如果它发现了什么,那么它应该是“truthy” - 所以你不需要检查> 0。只是因为它是“真理”


正如karim79所提到的,第一个是最简洁的。 然而我可以争辩说第二个更容易理解,因为它对于一些Javascript / jQuery程序员来说并不明显/已知在if语句中将非零/假值计算为true 。 正因为如此,第三种方法是不正确的。

链接地址: http://www.djcxy.com/p/14671.html

上一篇: Check if a div exists with jquery

下一篇: How do you check if a selector matches something in jQuery?