Heim > Web-Frontend > js-Tutorial > 当自定义数据属性为json格式字符串时jQuery的data api问题探讨_javascript技巧

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

WBOY
Freigeben: 2016-05-16 17:41:53
Original
1159 Leute haben es durchsucht

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}
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage