2010-11-23 100 views

回答

20

当然,人们已经这么做了很久。不推荐,因为它很混乱,你可能会混淆现有的属性。

如果您使用for..in循环代码,您的代码可能会中断,因为您现在将通过这些新附加属性进行枚举。

我建议使用类似jQuery的.data这样的元数据附加到对象。如果您不想使用库,请重新执行jQuery.data

+0

酷......是`数据`由jQuery本身使用还是我可以自由地给它分配任何值? – 2010-11-23 16:45:17

+1

`$ .data`由jQuery定义。你可以像`$('#el')。data('key','value')`一样使用它。 – 2010-11-23 16:46:23

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'; 
6

如果有人在2015年想知道,是的,你可以 - jQuery是做只是在data。只需选择供应商前缀或基于时间的随机后缀(jQuery)等面向未来的名称即可。

相关问题