2010-03-10 135 views
0

因爲所有你知道通過ID jQuery的選擇

$("#ID") 

返回其元素ID。

但這段代碼總是返回,即使沒有元素。

alert($("#htrBuyerCouponNotice")); 
alert(document.getElementById("htrBuyerConponNotice")); 

在這種情況下。

這兩行結果不一樣。

我想檢查一下是否有元素有htrBuyerCouponNotice

document.getElementByID如果沒有元素,則返回null。

+0

對不起我的英語不好 – 2010-03-10 06:41:56

+2

這不是因爲在優惠券/ Conpon錯字的,是嗎? :) – deceze 2010-03-10 06:43:33

回答

3

您可以檢查jQuery對象的length屬性來確定匹配元件的數量,如:

alert($(selector).length); 

您可以在if語句直接使用它,例如:

var $el = $(selector); 

if ($el.length) { // only 0 will coerce to false 
    // ... 
} 

但最你不需要知道選擇器是否匹配元素,因爲jQuery內置方法將被忽略,例如:

$('#nonExistent').hide(); 

即使未找到該元素,上述語句也不會導致任何錯誤。

jQuery的也有size方法,但我會建議你使用length財產直接,因爲它是可公開訪問的size方法是稍微慢一點,因爲它僅僅是返回length屬性的值的函數。

+0

非常感謝你! – 2010-03-10 07:34:19

0

嘗試:

$("#htrBuyerCouponNotice").size() 

這將是零,如果沒有節點與該標識符,1,如果有。

1

因爲jQuery返回一個選定元素的列表,如果沒有元素,你仍然得到一個返回 - 它只是一個空列表。

支票$(「#someID」)的長度 - 如果我沒有記錯corretly

1

當選擇的元素,jQuery的總是返回匹配元素的數組應該工作。在你的情況下,$('#htrBuyerCouponNotice')可能會返回一個空數組。相反,請檢查$('#htrBuyerCouponNotice').length

安德魯