使用$ .data(“value”)与$ .attr(“data-value”)

时间:2013-09-17 08:20:08

标签: javascript jquery html5 html5-data

当我使用jQuery.data更改值时,DOM中的属性不会更改。 但我喜欢当DOM中的属性发生变化时,它更容易调试。

使用$().attr("data-value")更改数据属性是否可以?

只是有点小提示,表明混合$().attr$().data不能很好地协同工作:

http://jsfiddle.net/AvRJc/

1 个答案:

答案 0 :(得分:9)

data函数管理jQuery提供的元素的数据缓存,而不是data-*属性。 data函数和data-*属性之间的唯一互连是,如果您请求密钥,data初始化来自data-*属性的信息缓存匹配data-*属性。

使用data 设置数据永远不会更新data-*属性。

使用attr更新属性很好,只需要保持一致:使用属性(通过attr)进行获取和设置,<强>或使用data获取和设置,因为他们管理不同的事情。

使用attr意味着你真的在更新元素的属性,这意味着你可以使用你在选择器等中设置的值(包括CSS和jQuery),但也意味着你只能使用和只设置字符串值。

使用data意味着您只更新数据缓存,而不是元素,这意味着您无法在选择器中使用这些值等(因为它们没有存储DOM中的任何位置,但意味着您可以获取并设置所有JavaScript数据类型。