在Mootools,我只是跑if ($('target')) { ... }
.if ($('#target')) { ... }
在jQuery中是否以相同的方式工作?
正如其他评论者所建议的那样,最有效的方法似乎是:
if ($(selector).length ) { // Do something }
如果你绝对必须有一个exists()函数 - 这将更慢 - 你可以这样做:
jQuery.fn.exists = function(){return this.length>0;}
然后在你的代码中你可以使用
if ($(selector).exists()) { // Do something }
在这里回答
不,jquery总是返回一个jquery对象,无论选择器是否匹配.你需要使用.length
if ( $('#someDiv').length ){ }
如果您使用:
jQuery.fn.exists = function(){return ($(this).length > 0);} if ($(selector).exists()) { }
你会暗示链接是可能的,但事实并非如此.
这会更好
jQuery.exists = function(selector) {return ($(selector).length > 0);} if ($.exists(selector)) { }
我想大多数在这里回复的人都不太明白这个问题,否则我可能会弄错.
问题是"如何检查jQuery中是否存在选择器."
大多数人都认为"如何使用jQuery检查DOM中是否存在元素".几乎不可互换.
jQuery允许您创建自定义选择器,但是在这里看到当您尝试在初始化之前使用e时会发生什么;
$(':YEAH'); "Syntax error, unrecognized expression: YEAH"
遇到这个后,我意识到这只是一个检查的问题
if ($.expr[':']['YEAH']) { // Query for your :YEAH selector with ease of mind. }
干杯.
另一种方式:
$('#elem').each(function(){ // do stuff });
if ($('#elem')[0]) { // do stuff }