我已经习惯了Prototypejs,如果没有找到任何元素,$$("selector")将返回null.这很方便,因为我能做到
if ($$("selector")) {}
Run Code Online (Sandbox Code Playgroud)
检查元素是否在DOM中.
但是,如果没有找到任何元素,在jQuery $(selector)中将返回[],所以现在我需要这样做:
if ( $(selector).length > 0 )
Run Code Online (Sandbox Code Playgroud)
这使得代码稍微难以阅读.
我的问题:这样做的最佳方法是什么?我应该使用.empty()和.any()等方法扩展jQuery对象,还是内置函数来执行此操作?
更新:这也适用于jQuery上的其他选择器,无论如何,它应该只返回一个结果(如parent()或nearest())
Baz*_*nga 38
$.fn.exists = function () {
return this.length !== 0;
}
Run Code Online (Sandbox Code Playgroud)
使用如下:
$("#notAnElement").exists();
Run Code Online (Sandbox Code Playgroud)
Chr*_*nte 19
使用length是最好的方法.您不应该使用empty()或size() > 0因为它只是向调用堆栈添加另一个条目.