jQuery .data()没有检索数据 – *
我正在测试IE8。 我刚刚将jQuery从v1.5.2升级到v1.6.1,现在数据方法无效。
这行看起来像这样:
这工作:
$("#docClassAttributeFields tbody tr:first").attr("data-DocClassAttributeFieldId");
这不起作用:
$("#docClassAttributeFields tbody tr:first").data("DocClassAttributeFieldId");
它有错误吗?
这是一个例子。 在1.5.2和1.6中运行它以查看它们如何以不同的方式运行… http://jsfiddle.net/5hbKX/
从文档 (我怀疑1.6中提到的更改是责备 – 你试过删除案例,看看lastValue示例?) :
HTML 5数据 – 属性
从jQuery 1.4.3开始, HTML 5数据属性将自动引入jQuery的数据对象。 使用嵌入破折号处理属性在jQuery 1.6中进行了更改,以符合W3C HTML5规范 。
例如,给定以下HTML:
所有以下jQuery代码都可以使用。
$("div").data("role") === "page"; $("div").data("lastValue") === 43; $("div").data("hidden") === true; $("div").data("options").name === "John";
每次尝试都将字符串转换为JavaScript值(这包括布尔值,数字,对象,数组和null),否则它将保留为字符串。 要将值的属性检索为字符串而不尝试转换它,请使用attr()方法。 当data属性是一个对象(以'{‘开头)或数组(以'[‘开头)时,则使用jQuery.parseJSON来解析字符串; 它必须遵循有效的JSON语法,包括引用的属性名称。 数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中)。
从上面的HTML5规范 :
自定义数据属性是no namespace中的属性,其名称以字符串“data-”开头,连字符后至少有一个字符,与XML兼容,并且不包含U + 0041到U + 005A范围内的字符(拉丁文大写字母A到拉丁文大写字母Z)。
HTML文档中HTML元素的所有属性都会自动进行ASCII小写,因此对ASCII大写字母的限制不会影响此类文档。
- CodeIgniter + jQuery(ajax)+ HTML5 pushstate:如何使用真实URL进行干净的导航?
- 如何在ipad上控制苹果video播放器(嵌入iframe和html5 vimeo解决方案的video)
- 使用jQuery Mobile加载时的白页
- Jquery Mobile – 我可以在现有布局中使用它吗?
- 可信的div中的HTML5可拖动元素 – 在第一次掉落后停止工作 – 为什么?
- 如何告诉IE忽略以前收到的格式错误的HTML并呈现不同的HTML?
- 使用dropzone.js使用相同的file.name上载多个文件
- 使用jQuery访问HTML 5video进度事件
- 如何使用滑块更改HTML5音频音量或音轨位置?