首页 > web前端 > js教程 > 当自定义数据属性为json格式字符串时jQuery的data api问题探讨_javascript技巧

当自定义数据属性为json格式字符串时jQuery的data api问题探讨_javascript技巧

WBOY
发布: 2016-05-16 17:41:53
原创
1159 人浏览过

jQuery 的 data API 实现方式有缓存数据的效果
使用 IE 7 (IE8+ 在控制台切换至IE7 模式),当DOM 节点有自定义数据属性时,检查 DOM 节点即可看到 形如 jQuery18305664906559272507 的属性,这便是 用于从数据存储对象中获取自定义数据的建。

当自定义数据属性是一个 json 格式字符串时,缓存的数据如果被修改, 则修改后的数据继续存在于缓存系统中, 如果不留意,这可能导致一些BUG

复制代码 代码如下:








<script> <BR>var node = $("#tst"); <BR>console.log(node.attr("data-json")); <BR>var data = node.data("json"); <BR>console.log(data); <BR>data.b = 'hello'; <BR>var data1 = JSON.parse(node.attr("data-json")); <BR>console.log(data1); <BR>console.log('data===data1',data===data1); <BR>var data2 = node.data("json"); <BR>console.log(data2); <BR>console.log('data===data2',data===data2); <BR>var data3 = JSON.parse(node.attr("data-json"));//这样取值不受缓存影响 <BR>console.log(data3); <BR></script>



运行结果
复制代码 代码如下:

{"a":123,"b":456}
Object {a: 123, b: 456}
Object {a: 123, b: 456}
data===data1 false
Object {a: 123, b: "hello"}
data===data2 true
Object {a: 123, b: 456}
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板