1

我使用jQuery.data()方法将自定义数据存储在元素上。

<div id="mydiv" data-test='{"1":"apple", "2":"banana"}'>Custom data</div>

我知道我可以访问存储在data-testusing中的对象的各个键

    $('#mydiv').data('test')["1"]

但是可以像这样重新分配 单个键吗?它有效,但没有记录。其次,在使用浏览器的开发工具检查元素时,在这种情况下我仍然看到旧值,即“apple”。JSFiddle

    $('#mydiv').data('test')["1"] = "pear"

更新 - 找到更多相关的问答(不是真的重复,因为我的主要问题是关于分配对象的单个键)

4

2 回答 2

2

用于.data()设置值,在您检查元素时不会更改元素中的值,它会在内部存储该数据。如果您想将这些更改反映到 DOM 元素,那么您应该.attr()像这样使用,

  $('#mydiv').data('test')["1"] = "pear"
  $('#mydiv').attr('data-test', JSON.stringify($('#mydiv').data('test')));

演示

检查该特定元素以验证更改。

于 2014-07-19T06:42:07.570 回答
0

试试这个

$('#mydiv').data('test')["1"] = "pear";
$('#mydiv').attr('data-test',function(_,attr){
   return JSON.stringify(attr);
});
于 2014-07-19T06:53:59.383 回答