是的,我知道很多人都问过这个问题。
但是,这让我很困惑,因为谷歌上的搜索结果显示了不同的方法(如下所示)
$(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');
}
});
这三个中哪一个是检查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是“假的”(当转换为bool时,它是假的)。所以如果它发现了什么,那么它应该是“真实的”-所以你不需要检查> 0。只是因为它的"真实性"
如果你只是检查一个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是“假的”(当转换为bool时,它是假的)。所以如果它发现了什么,那么它应该是“真实的”-所以你不需要检查> 0。只是因为它的"真实性"