2009-05-24 73 views
22

如果$('#id')不匹配任何內容,會返回什麼?我認爲這將是空或虛假或類似的東西,所以我試着檢查像這樣:

var item = $('#item'); 
if (!item){ 
    ... 
} 

但這並沒有奏效。

回答

44

您可以使用多少個元素相匹配:

$('selector').length 

要檢查沒有任何元素是否匹配,使用:

var item = $('#item'); 
if (item.length == 0) { 
    // ... 
} 
+5

是的,這是正確的方法。但是,要回答這個問題,它會返回一個匹配的DOM元素的對象/數組。 'length'屬性可用於任何javascript對象(數組,字符串等)來確定它的長度(num元素,num字符等等)。 – KyleFarris 2009-05-24 19:06:01

+2

只用if(item.length) – redsquare 2009-05-24 19:26:49

5

一個不包含DOM節點的jQuery對象。

您應該能夠使用

var item = $('#item'); 
if (!item[0]){ 
    ... 
} 

你的存在性檢查。

1

長度屬性的別名是大小()方法。所以,你基本上也可以查詢:

$( 「選擇」),大小()

,看看有多少元素相匹配。

7

雖然$('selector').length非常適合查找您的選擇器匹配多少個對象,但它實際上完全不需要。關於jQuery的一點是,所有基於選擇器的函數都在內部使用長度,因此您只需執行$(selector).hide()(或其他任何操作),並且不會對空集執行任何操作。

相關問題