假设我创建了一个jQuery函数来检查元素是否存在,如:
jQuery.fn.exists = function () {
return this.length > 0;
}
然后我打电话给:
if ($("#MyDiv").exists() == false)
alert('not exist');
else
alert('exist');
如果我在上面调用jQuery函数就行了。但我们不能像这样exists('#MyDiv')
调用jquery函数吗?如果我试着这样打电话,那么我没有得到结果......为什么?
答案 0 :(得分:2)
ARRG,请不要使用这个无用的exist
函数!
可以简单地用:
if ($('#MyDiv').length)
// Exist
else
// Doesn't exist.
不需要插件,每个人都知道此代码的作用,不要使用exist
。
答案 1 :(得分:1)
尝试如下,
$.exists = function (selector) {
return $(selector).length > 0;
}
并使用as,
$.exists('#test')
DEMO: http://jsfiddle.net/skram/hgaPt/1/
请在更大的图片中使用它,将它用于简单的事情,因为存在只是一种矫枉过正。
答案 2 :(得分:0)
exists('#MyDiv')
这不起作用,因为你没有创建一个名为exists
的函数。您创建了一个名为jQuery.fn.exists
的函数(jQuery.fn
是jQuery对象的prototype
。
要使exists('#MyDiv')
生效,您需要创建一个名为exists
的函数。
function exists(sel){
return $(sel).length;
}
答案 3 :(得分:0)
$.fn
等于$.prototype
,因此间接使用$.fn
将您的函数挂钩到jQuery对象原型,因此选择器需要传递给jQuery对象而不是链接函数名。