Checking if a jQuery selector doesn't find any results
本问题已经有最佳答案,请猛点这里访问。
我已经习惯了Prototypejs,如果没有找到任何元素,$$("selector")将返回null。 这很方便,因为我能做到
1 | if ($$("selector")) {} |
检查元素是否在DOM中。
但是,如果没有找到任何元素,在jQuery $(selector)中将返回[],所以现在我需要这样做:
1 | if ( $(selector).length > 0 ) |
这使得代码稍微难以阅读。
我的问题:这样做的最佳方法是什么? 我应该使用.empty()和.any()等方法扩展jQuery对象,还是内置函数来执行此操作?
更新:这也适用于jQuery上的其他选择器,无论如何,它应该只返回一个结果(如parent()或nearest())
1 2 3 | $.fn.exists = function () { return this.length !== 0; } |
使用如下:
1 | $("#notAnElement").exists(); |
使用
1 | if ( $(selector)[0] ) |
那就行了。