2012-10-18 46 views
6

可能重複:
jQuery .attr retrieving custom attribute returns undefined創建一個新的屬性與jQuery

我有一個奇怪的問題,但我希望我只是在做一些愚蠢的事。我試圖創建使用jQuery的<img>元素上一個新的屬性,而這條線:

$(selector).attr('selected', 'no'); 

當我檢查Chrome中的DOM,我只看到選擇=「選擇」,無論什麼我設置價值。

只是一些額外的信息:我不能只使用布爾值,因爲我需要跟蹤「是」,「否」和「部分」屬性值。我從img本身的「onClick」事件中調用JS函數,並將this作爲參數傳遞。我檢查了方法中的對象,並傳遞了正確的對象;屬性設置的事實(即使是錯誤的值)也支持這一點。

我死了肯定我在這裏做一些愚蠢的事情...任何意見將不勝感激。

回答

11

所選內容已經是HTML標準中的一個屬性,因此您不能使用相同的名稱創建自定義屬性。在這種情況下,您應該使用data-屬性,並創建一個屬性data-selected

在jQuery中,您使用.data()方法處理自定義數據屬性。

自定義數據屬性在HTML5規範here中描述。

5

,你可以插入一個data-*自定義屬性,像這樣

$(selector).data('selected', 'no'); 

你的元素將設置一個data-selected屬性

1

一個DOM屬性比DOM屬性不同;)

我建議使用$(selector).data()作爲你的用例。

2

如果您需要將任意數據附加到元素,請使用.data()而不是.attr()