用jQuery检查div是否存在[重复]

2020/10/31 23:11 · jquery ·  · 0评论

是的,我知道这个问题已经问了很多。但是,这让我感到困惑,因为Google在此搜索中的结果显示了不同的方法(下面列出)

$(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是否存在”的问题,而是关于哪种方法更好,并且,如果有人可以解释,为什么更好呢?

首先是最简洁的,我同意。前两个相同,但第一个短一点,因此您将节省字节数。第三个是完全错误的,因为该条件永远将评估为true,因为该对象永远不会为null或虚假。

如果仅检查ID是否存在,则无需进入jQuery,您可以简单地执行以下操作:

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

getElementByIdnull如果找不到则返回

参考

但是,如果您打算以后使用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,则为“虚假”(当转换为bool时为假)。因此,如果找到了东西,那么它应该是“真实的”-因此您无需检查>0。只是因为它是“真实”

正如karim79所说,第一个是最简洁的。但是我可能会争辩说第二个更容易理解,因为对于某些Javascript / jQuery程序员来说,非零/假值true在if语句中被评估是不明显的因此,第三种方法是不正确的。

本文地址:http://jquery.askforanswer.com/yongjqueryjianchadivshifoucunzaizhongfu.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!