我刚注意到,如果我尝试使用data-*
读取html5 .data
属性,它会自动解析,而使用.attr
读取值则不会。
data-id="00123456"
为什么这是默认行为?我有某些对象,其字段在字符串中是数字值,例如“00123456”而非123456。
我是否错过了jQuery changelog
备忘录或者什么?
答案 0 :(得分:7)
从jQuery 1.4.3开始,HTML 5数据属性将自动生成 拉入jQuery的数据对象。用属性处理属性 在jQuery 1.6中更改了嵌入式破折号以符合W3C HTML5 说明书
例如,给定以下HTML:
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
以下所有jQuery代码都可以使用。
$("div").data("role") === "page";
$("div").data("lastValue") === 43;
$("div").data("hidden") === true;
$("div").data("options").name === "John";
每次尝试都将字符串转换为JavaScript值 (否则,这包括布尔值,数字,对象,数组和null) 它留作一个字符串。要将值的属性检索为字符串 如果没有尝试转换它,请使用attr()方法。
因此,从jQuery 1.6开始,.data
方法解析了值。