2013-07-26 59 views
0

我想知道,是否有任何具體的原因,爲什麼jQuery沒有拋出任何錯誤時,沒有找到對象給定的選擇器。爲什麼jQuery沒有發現任何錯誤,當對象沒有找到

對於實施例:

$( 「#內容」)的CSS( 「顏色」, 「紅色」);

在這裏,沒有id爲「content」的元素,但它甚至沒有做任何事情甚至錯誤。

+0

是的,我知道他們是真棒:) – krishgopinath

+0

有ISN」錯誤,因爲沒有結果。 –

+0

沒有匹配選擇器的元素不是錯誤 –

回答

6

用於返回元素集合的jQuery選擇器當找不到匹配時它是如何設計的元素。您可以使用length屬性來檢查,如果你有元素

if($('yourselector').length) 
{ 
    //You got one or more elements 
} 
else 
{ 
    //You haven't got any element. 
} 
+0

確實,這就是我的意思! –

+0

只需添加,任何選擇器將始終返回一個jQuery對象,因此即使沒有匹配的元素,它也不爲null/undefined/empty。使用@ Adil的方法是確定元素是否被找到的唯一方法。 –

+0

@RoryMcCrossan不是唯一的方法,但肯定是最好的 –

0

定義

jQuery.fn.extend({ 
     notEmpty: function (atLeast) { 
      const len = atLeast || 1; 
      if (this.length < len) 
       throw `unable to find ${len} element with selector : 
       '${this.selector}'. ${this.length} element is found.`; 
      return this; 
     } 
    }); 

使用

let el = $(".at_least_one_element_selector").notEmpty();  
let el = $(".at_least_5_element_selector").notEmpty(5); 
相關問題