使用DOM中定义的html5数据属性创建新元素

时间:2012-03-29 00:04:04

标签: javascript jquery html5

我想创建一个定义了html5数据属性的新元素,但是它们没有在DOM中显示(与使用说.addClass时不同)。这是预期的行为吗?

这会创建一个元素,而不是 data-foo attributs:

-> $("<div>foo</div>").data('foo', 'bar').addClass('class')
=> <div class="class">foo</div>

我必须在构造函数

中声明它
-> $("<div data-foo='bar'>foo</div>").addClass('class')
=> <div class="class" data-foo="bar">foo</div>

.data方法不应该这样做吗?

1 个答案:

答案 0 :(得分:1)

从这里开始:

  

4。没有jQuery数据API会改变HTML5 data- *属性。

     

.data()和.removeData()的大多数用法仍然适用于原始版本   将数据与内存中的DOM元素相关联的目的。更新DOM   每次更改数据时,属性都会减慢   好理由。此外,甚至无法序列化所有数据类型   可能附加到DOM元素,例如函数,引用   到其他DOM元素或自定义JavaScript对象。

     

规则:要更新或删除HTML5 data- *属性,请使用jQuery   .attr()或.removeAttr()方法。

所以,请使用通常的attr ...