手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >当自定义数据属性为json格式字符串时jQuery的data api问题探讨
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
摘要:jQuery的dataAPI实现方式有缓存数据的效果使用IE7(IE8+在控制台切换至IE7模式),当DOM节点有自定义数据属性时,检查DO...

jQuery 的 data API 实现方式有缓存数据的效果

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

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

复制代码 代码如下:

<!DOCTYPE HTML>

<html>

<head>

<script src="http://code.jquery.com/jquery-1.8.3.js"></script>

</head>

<body>

<input type="hidden" value="" data-json='{"a":123,"b":456}' id="tst" />

<script>

var node = $("#tst");

console.log(node.attr("data-json"));

var data = node.data("json");

console.log(data);

data.b = 'hello';

var data1 = JSON.parse(node.attr("data-json"));

console.log(data1);

console.log('data===data1',data===data1);

var data2 = node.data("json");

console.log(data2);

console.log('data===data2',data===data2);

var data3 = JSON.parse(node.attr("data-json"));//这样取值不受缓存影响

console.log(data3);

</script>

</body>

</html>

运行结果

复制代码 代码如下:

{"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}

【当自定义数据属性为json格式字符串时jQuery的data api问题探讨】相关文章:

jQuery基于图层模仿五星星评价功能的方法

jquery读取xml文件实现省市县三级联动的方法

经验几则 推荐

如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)

JavaScript实现仿网易通行证表单验证

可输入的下拉框

JavaScript函数使用的基本教程

prototype class详解

js去字符串前后空格的实现方法

解密效果

精品推荐
分类导航