2009-12-14 58 views
54

我现在这样做是为了检查是否两个元素之一存在:如果两个元素之一存在,做一些

if ($(".element1").length > 0 || $(".element2").length > 0) { 
    //do stuff... 
} 

有没有更好的方式来改写一样吗?我的意思是,.length.length > 0相同?

+0

您可能会发现这个[问题](http://stackoverflow.com/questions/31044/is-there-一个存在的功能为jQuery)回答你的问题。 – 2009-12-14 05:43:11

回答

25
if ($('#myDiv')[0]) { //do something } 

..works最好的!

Found here

48
if ($(".element1").is('*') || $(".element2").is('*')) { 
    // code 
} 

编辑(每评论)由多个类中选择元素,在一个电话:

if ($(".element1, .element2").is('*')) { 
    // code 
} 
+3

请注意,您也可以将两个选择器合并为一个,如下所示:'$(“。element1,.element2”)'。 – bcat 2009-12-14 05:43:35

+5

“.is()”与“.length> 0”相同吗?有什么区别,如果有的话? – 3zzy 2009-12-14 05:53:58

+0

Nimbuz,使用.is()的好贴子 - http://www.bennadel.com/blog/1725-jQuery-s-is-Method-Checks-For-Any-Matching-Elements.htm – micahwittman 2009-12-14 06:07:00

1

See Extremely updated version of this plugin here!现在使用回调函数,因此如果您选择,您可以保持可链接性。可完全替代if语句或仍可内语句中使用


您可以创建一个非常简单的jQuery插件这一点,因为这样:

jsFiddle

(function($) { 
    if (!$.exist) { 
     $.extend({ 
      exist: function(elm) { 
       if (typeof elm == null) return false; 
       if (typeof elm != "object") elm = $(elm); 
       return elm.length ? true : false; 
      } 
     }); 
     $.fn.extend({ 
      exist: function() { 
       return $.exist($(this)); 
      } 
     }); 
    } 
})(jQuery); 

USE

// With ID 
$.exist("#eleID"); 
// OR 
$("#eleID").exist(); 

// With class name 
$.exist(".class-name"); 
// OR 
$(".class-name").exist(); 

// With just tag // prolly not best idea aS there will be other tags on site 
$.exist("div"); 
// OR 
$("div").exist(); 

有了您的if语句

if ($(".element1").exist() || $(".element2").exist()) { 
    ...stuff... 
} 

当然,这个插件可以进一步扩展到更加花哨(基于处理一次多个呼叫,创建不存在的元素一个婴儿车),但现在它的立场,它做了一个非常简单,非常需要的功能......这个元素是否存在?返回TrueFalse

jsFiddle

2
!$.isEmptyObject($.find('#urId')) 

如果元素存在,这将返回 “真”,否则为False

欢呼 :)

1

只需使用。每()。

$(".element1").each(function(){ 
    //Do Something here 
} 

简单...

1
$.fn.exists = function(ifExists) { 
    return this.length ? ifExists.call(this, this) : this; 
}; 

用法:

$('.element1, .element2').exists(function(els) { 
    // this and els refers to $('.element1, .element2') 
});