测试空的 jQuery 选择结果

说我愿意

var s = $('#something');

接下来,我想测试 jQuery 是否找到了 # something,也就是说,我想测试 s是否为空。

我可以用我值得信赖的 isempty():

function isempty(o) {
for ( var i in o )
return false;
return true;
}

或者因为 jQuery 对象是数组,我想我可以测试 s.length

但是两者似乎都不太符合 jQuery 的风格,不太像 jQueryesque。您有什么建议吗?

54849 次浏览

Use the s.length property.

if(s.length == 0) {
...
}

[edit] size() deprecated in jquery 1.8 http://api.jquery.com/size/

if($("#something").length > 0 ){
// Element found
}
else{
// No element found
}

An even more jQueryesque solution for me is:

jQuery.fn.isEmpty = function(fun){ if (this.length === 0) { fun(); } return this; };

This lets me write in typical fashion:

$("#sel").fadeOut(500,afterFade).isEmpty(insteadOfFade);