这个问题在这里已有答案:
在Mootools中,我只是运行 if ($('target')) { ... } . jQuery中 if ($('#target')) { ... } 的工作方式是否相同?
if ($('target')) { ... }
if ($('#target')) { ... }
正如其他评论者建议的最有效的方法似乎是:
if ($(selector).length ) { // Do something }
如果你绝对必须有一个exists()函数 - 它会更慢 - 你可以这样做:
jQuery.fn.exists = function(){return this.length>0;}
然后在您的代码中,您可以使用
if ($(selector).exists()) { // Do something }
正如回答here
不,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 }
或者:
if( jQuery('#elem').get(0) ) {}
我更喜欢
if (jQuery("#anyElement").is("*")){...}
这基本上检查这些元素是否是一种“*”(任何元素) . 只是一个更清晰的语法和“是”在“如果”内部更有意义
jQuery.fn.exists = function(selector, callback) { var $this = $(this); $this.each(function() { callback.call(this, ($(this).find(selector).length > 0)); }); };
对我来说 .exists 不起作用,所以我使用索引:
.exists
if ($("#elem").index() ! = -1) {}
首先创建一个函数:
$.fn.is_exists = function(){ return document.getElementById(selector) }
然后
if($(selector).is_exists()){ ... }
11 回答
正如其他评论者建议的最有效的方法似乎是:
如果你绝对必须有一个exists()函数 - 它会更慢 - 你可以这样做:
然后在您的代码中,您可以使用
正如回答here
不,jquery总是返回一个jquery对象,无论选择器是否匹配 . 你需要使用.length
如果您使用:
你会暗示链接是可能的,但事实并非如此 .
这会更好
我想大多数在这里回复的人都不太明白这个问题,否则我可能会弄错 .
问题是“如何检查jQuery中是否存在选择器 . ”
大多数人都认为“如何使用jQuery检查DOM中是否存在元素” . 几乎不可互换 .
jQuery允许您创建自定义选择器,但是在这里看到当您在初始化之前尝试使用e时会发生什么;
遇到这个后,我意识到这只是一个检查的问题
干杯 .
另一种方式:
或者:
我更喜欢
这基本上检查这些元素是否是一种“*”(任何元素) . 只是一个更清晰的语法和“是”在“如果”内部更有意义
对我来说
.exists
不起作用,所以我使用索引:首先创建一个函数:
然后