2012-07-16 21 views
2

我有了這個元素或其屬性:的jQuery沒有找到

<h1 id="test" class="test"> 

,並在腳本部分原因:

alert($('#test').id) 
alert($('.test').id) 

jQuery的肯定是加載。但是我在警報框中獲得了undefined - 兩次。如果我使用常規getElementById,它的工作原理和顯示測試

到底什麼是錯的(我)

這裏是一個例子http://jsfiddle.net/tF6bd/

+0

jQuery的工廠函數不會返回DOM節點,它返回一個包含DOM節點列表的jQuery的包裝。 – zzzzBov 2012-07-16 18:23:28

+1

jQuery確實在這種情況下找到了元素。 – epascarello 2012-07-16 18:25:16

回答

4

變化:

alert($('#test').id) 

到:

alert($('#test').attr('id')) 

或:

alert($('#test')[0].id) 

對於jQuery對象,您應該使用attr()方法。

+0

我喜歡它!謝謝 – EasierSaidThanDone 2012-07-16 18:23:40

+0

但是:是否只讀?如果我爲'$(「。test」)。attr(「class」)=「try」賦值,它會停止執行。請參閱http://jsfiddle.net/tF6bd/1/ – EasierSaidThanDone 2012-07-16 18:33:24

+1

@EasierSaidThanDone更改屬性的值,您應該編碼'$(「。test」)。attr(「class」,「try」)' – undefined 2012-07-16 18:34:56

0

您可以使用attrprop,區別在於attr返回undefined如果屬性尚未設置。

實例
alert($('test').attr('id'));
alert($('test').prop('id'));

演示

參考