我写了一个jQuery插件,一切似乎都很好,直到我在一个不存在的DOM元素上运行我的插件。我期待警报框不会弹出,因为$("#div1")
将返回空集
<div id="div2">hello</div>
(function($){
$.fn.extend({myPlugin1: function(options){
alert('plugin run');
return this;
}
});
})(jQuery);
$("#div1").myPlugin1();
请注意,在 div1 上调用插件时,DOM元素的ID为 div2 。
答案 0 :(得分:3)
您的插件扩展了jQuery对象。空选择器仍然返回一个jQuery对象,因此它仍然会运行。
如果你想检查选择器是否匹配任何东西,你必须明确地这样做:
if (this.length == 0) return this;
alert('plugin run');
return this;