使用.data()来检索data-*属性的值是个好主意吗?

Mat*_*els 5 jquery html5 custom-data-attribute

在我的项目中,我目前在HTML中使用一些自定义data-*属性来传达jQuery将使用的一些额外数据.我发现了这个.data()方法,并注意到如果我有一个data-*属性data-my-attribute,我可以通过选择带有属性和调用的元素在jQuery中检索它的值.data("my-attribute").

我认为这是应该使用的方式(没有查看文档)并通过我的jQuery代码使用它.但是,现在我注意到当我"000005643"在HTML data-*属性中添加一个字符串时,.data("my-attribute")返回5643.attr("data-my-attribute")返回"000005643".后者是我想要的.这导致我查阅文档,实际发现有.data()比我想象的更多.此外,我从未看到任何表明您应该.data()用来检索data-*属性值的文本或示例.这让我担心我做了一些根本错误的事情.

那么我是否应该停止并停止以.data()这种方式使用?如果没有,您能否将我链接到有关.data()解释此用途的功能的一些文档.

ale*_*lex 8

data()返回HTML5 data-*属性的方法在1.4.3引入.

从jQuery 1.4.3开始,HTML 5数据属性将自动引入jQuery的数据对象.

每次尝试都将字符串转换为JavaScript值(这包括布尔值,数字,对象,数组和null),否则它将保留为字符串.要将值的属性检索为字符串而不尝试转换它,请使用attr()方法.

来源.

看来jQuery肯定你想要一个数字,所以它会Number为你返回一个,而不是String.

如果您想将它作为字符串,请使用attr().