是否可以向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