是否可以向JavaScript DOM對象添加任意屬性,例如<INPUT>
或<SELECT>
元素?或者,如果我不能這樣做,是否有辦法通過引用屬性將我自己的對象與頁面元素相關聯?我可以爲DOM對象添加任意屬性嗎?
28
A
回答
20
當然,人們已經這麼做了很久。不推薦,因爲它很混亂,你可能會混淆現有的屬性。
如果您使用for..in
循環代碼,您的代碼可能會中斷,因爲您現在將通過這些新附加屬性進行枚舉。
我建議使用類似jQuery的.data
這樣的元數據附加到對象。如果您不想使用庫,請重新執行jQuery.data
15
是的,您可以將自己的屬性添加到DOM對象,但請記住小心避免命名衝突和循環引用。
document.getElementById("myElement").myProperty = "my value";
HTML5引入經由標記的元件附接數據的有效方式 - 使用data-
屬性前綴。您可以在HTML中使用此方法4號文件沒有問題了,但是他們不會驗證:
<div id="myElement" data-myproperty="my value"></div>
,您可以通過JavaScript訪問使用getAttribute()
:
document.getElementById("myElement").getAttribute("data-myproperty");
4
你想屬性添加到對象或元素的屬性?
可以使用setAttribute
var el = document.getElementById('myelement');
el.setAttribute('custom', 'value');
添加屬性,或者你可以只添加屬性的JavaScript對象:
var el = document.getElementById('myelement');
el.myProperty = 'myValue';
1
如果必須,不使用標準的HTML屬性。下面是使用自定義屬性的教程:
http://www.javascriptkit.com/dhtmltutors/customattributes.shtml
這是HTML5,但它的向後兼容。
6
如果有人在2015年想知道,是的,你可以 - 和 jQuery是做只是在data。只需選擇供應商前綴或基於時間的隨機後綴(jQuery)等面向未來的名稱即可。
相關問題
- 1. 我可以在iOS中設置任意屬性文件嗎?
- 2. OData錯誤對象是否可以包含任意屬性
- 3. 可以使用對象屬性嗎?
- 4. 我可以爲對象動態創建屬性類型和屬性名稱嗎?
- 5. 在javascript/jquery中添加任意函數給dom對象
- 6. 添加屬性的對象
- 7. 添加屬性JSON對象
- 8. 我可以在不刪除任何屬性的情況下刪除對象嗎?
- 9. 我們可以設置一個類的對象的屬性嗎?
- 10. 我可以將屬性動態應用於對象字段嗎?
- 11. 我可以在python中更改__name__對象的屬性嗎?
- 12. PHP Kohana3。我可以重命名ORM對象屬性嗎?
- 13. 我可以通過php POST獲取對象的屬性嗎?
- 14. VBScript可以將屬性添加到像JScript這樣的對象嗎?
- 15. 我可以在javascript中動態添加屬性嗎?
- 16. 我可以將模式屬性添加到textarea嗎?
- 17. 我可以添加屬性到「閱讀更多」嗎?
- 18. 我可以在select2的「text」屬性中添加css語法嗎?
- 19. 我可以向單個屬性添加多個字段嗎?
- 20. 我可以使用C#中的對象名稱訪問對象屬性嗎?
- 21. 當屬性不爲空時將屬性添加到對象
- 22. 我應該向DOM對象添加一個方法嗎?
- 23. 在創建對象之前,我可以添加事件嗎?
- 24. 我可以將messageListener添加到xslt模板對象嗎?
- 25. 我可以創建一個嵌套表作爲屬性的對象表嗎?
- 26. 添加對象屬性作爲對象ID
- 27. 我可以獲取HTMLElement DOM對象的完整HTML表示嗎?
- 28. 我可以防止ListBox.RefreshItem(對象項)移除並重新添加對象嗎?
- 29. Lucene可以將任意對象附加(或至少跟蹤)到文檔嗎?
- 30. Java - 我可以在遠程對象中調用任意數量的方法嗎?
酷......是`數據`由jQuery本身使用還是我可以自由地給它分配任何值? – 2010-11-23 16:45:17
`$ .data`由jQuery定義。你可以像`$('#el')。data('key','value')`一樣使用它。 – 2010-11-23 16:46:23