我想知道 jquery 的执行情况。假设我有一个不存在的ID,为什么jquery仍然尝试执行那部分代码:
$(function() {
$( "#datepicker_doesnotexist" ).datepicker({
defaultDate: new Date(date_var)
});
});
在这种情况下,它提示 date_var
未定义。这是可以理解的,我可以进行检查来防止这种情况发生,等等。
我想知道如果该 ID (datepicker_doesnotexist) 不存在,为什么 jQuery 会执行这部分代码。如果无论如何都无法将其绑定(bind)到元素,那么这样做似乎效率非常低。
最佳答案
您尚未初始化date_var。这应该会阻止抛出错误
$(function() {
var date_var = new Date( 2012, 10, 25 );
$( "#datepicker_doesnotexist" ).datepicker({
defaultDate: date_var
});
});
如果没有找到具有匹配 ID 的元素,jQuery 将返回一个没有元素的 jQuery 对象。 返回的 jQuery 对象上的 datepicker 方法仍会被调用,但它只是没有任何可使用的 html 元素。
这实际上是一件好事。如果 jQuery 在没有元素与 ID 匹配时返回 undefined,则上述代码将引发错误。
关于jquery - 为什么jquery对不存在的选择器执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075639/