我想创建一个定义了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方法不应该这样做吗?
答案 0 :(得分:1)
从这里开始:
4
。没有jQuery数据API会改变HTML5 data- *属性。.data()和.removeData()的大多数用法仍然适用于原始版本 将数据与内存中的DOM元素相关联的目的。更新DOM 每次更改数据时,属性都会减慢 好理由。此外,甚至无法序列化所有数据类型 可能附加到DOM元素,例如函数,引用 到其他DOM元素或自定义JavaScript对象。
规则:要更新或删除HTML5 data- *属性,请使用jQuery .attr()或.removeAttr()方法。
所以,请使用通常的attr
...