我最近有一个关于如何使用 jQuery 正确检查元素是否存在的问题。我从这里找到了答案:
https://learn.jquery.com/using-jquery-core/faq/how-do-i-test-whether-an-element-exists/
总之:
if ( $( "#myDiv" ).length ) {
// Do something
}
与我一起工作的一个人说正确的检查方法应该是:
if ($( "#myDiv" ) && $( "#myDiv" ).length ) {
// Do something
}
有关系吗?我的意思是从性能或延迟方面来看,它们的性能相同吗?
还:
$( "#myDiv" ).show();
$( "#myDiv" ).hide();
$( "#myDiv" ).val('');
在这些类型的 jQuery 函数中,似乎不需要 if
检查,因为如果 #myDiv
不存在,它们不会引发错误,对吗?
对于它的价值,我使用的是 jQuery 1.6.4。
原文由 OPK 发布,翻译遵循 CC BY-SA 4.0 许可协议
if ($(“.foo”).offset().top > 20)
$(“.foo”).closest(“.bar”).toggleClass(“baz”):
var offset = $(“.foo”).offset(); if (offset && offset.top > 20)
”`
Again, most accessors (that don’t return jQuery objects) do this, including
val()
,offset()
,position()
,css()
, . ..