2009-12-14 30 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') 
}); 
相關問題