2010-10-28 60 views
1

在我的代碼,當我寫的代碼,如:

$("#id_pop")[0] 

存在錯誤。當我將其更正爲:

var $d = $("#id_pop"); 
$d[0].... 

沒關係。爲什麼?

+1

有什麼錯誤? – 2010-10-28 06:22:24

+0

使用'$(「#id_pop」)。first()'或'$(「#id_pop」)。get(0)'我遇到過'[0]'問題。但我不記得它是什麼。 – Jason 2010-10-28 06:24:59

回答

3

[0]應該工作,即讓你一個DOM對象。但是,一旦找回正常的DOM對象,就無法繼續使用jQuery方法。

,你也可以從一個jQuery選擇這樣得到一個DOM對象:

$('#id_pop').get(0);

而且你肯定只有一個元素用id id_pop。如果有則$('#id_pop')[0]應該工作。

看到這裏的工作例如:http://jsbin.com/udace3

+0

你能解釋爲什麼[0]不工作? – 2010-10-28 06:29:13

+0

看到我更新的答案 – 2010-10-28 06:30:54

+0

我明白了!所以$ d仍然是一個jquery對象,但如果我只從[0]中獲取它是一個正常的dom對象,那就是錯誤發生的原因。 – 2010-10-28 06:35:20

1

您正在使用的ID選擇,你不應該得到一個數組,但jQuery對象本身。在使用#ID的jQuery的文檔,

每個ID只能只有一次在文檔中使用。如果多個元素被分配了相同的ID,那麼使用該ID的查詢將僅選擇DOM中第一個匹配的元素。這種行爲不應該依賴...

0

是不是它更好地使用.EQ(),而不是獲得()?

$('#id_pop').eq(0); 

或與此有關:

$('#id_pop:eq(0)'); 
+1

這兩個仍然是jQuery對象,而不是普通的JS DOM對象 – 2010-10-28 06:46:06

+0

沒錯,但他使用jQuery,所以我建議。 – bozdoz 2010-10-28 06:50:04