在Mootools中,我只需要运行if ($('target')){…}。if ($('#target')){…}在jQuery的工作方式相同?
当前回答
不,无论选择器是否匹配,jquery总是返回一个jquery对象。 你需要使用。length
if ( $('#someDiv').length ){
}
其他回答
jQuery.fn.exists = function(selector, callback) {
var $this = $(this);
$this.each(function() {
callback.call(this, ($(this).find(selector).length > 0));
});
};
正如其他评论者所建议的,最有效的方法似乎是:
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 ){
}
还有另一种方式:
$('#elem').each(function(){
// do stuff
});
对我来说,.exists不起作用,所以我使用索引:
if ($("#elem").index() ! = -1) {}