2013-04-21 78 views
0

我看到一個jQuery id選擇器爲一個不存在的元素返回一個數組項。jQuery id選擇器不返回空數組爲非existant元素?

$('#bootstrap_alert_placeholder')在我的函數返回時,(從Chrome控制檯)

[context: document, selector: "#bootstrap_alert_placeholder", jquery: "1.9.1", constructor: function, init: function…] 

但是當我打電話選擇在我的控制檯來仔細檢查輸出我看到一個空數組,這正是我所期望的。

任何人都知道這裏發生了什麼?我希望函數能夠用不同的上下文執行,但我不明白這會如何影響選擇器的結果。

+0

好吧,呃,不知道這裏有什麼問題。 – hjpotter92 2013-04-21 18:56:38

+1

所有這些屬性都存在於jQuery對象中;空或不空; 「長度」屬性顯示的是什麼? – Matt 2013-04-21 18:57:31

+1

Chrome陣列式對象*的Chrome控制檯輸出令人困惑。該東西不包含任何項目,具有'length:0',但其他一些屬性(大部分屬性繼承自'$ .fn') – Bergi 2013-04-21 19:03:44

回答

2

試試這個控制檯,在此頁:

console.log($("#blah")); 
//possible output in chrome: 
//[context: document, selector: "#blah_im_not_a_real_element", 
//constructor: function, init: function, selector: ""…] 

//or in firefox: ({context:({}), selector:"#blah"}) 


console.log($("#blah_im_not_a_real_element").length) 
//outputs 0 

jQuery對象不是 「空」 在nullundefined。它是空的,因爲長度爲0,仍然是一個jQuery對象,雖然

console.log($("#blah_im_not_a_real_element").constructor) 
+0

嗯,就是這樣,Chrome的控制檯在這種情況下是令人困惑的。謝謝。 – 2013-04-21 19:06:09