我使用jQuery.data()方法将元素存储在元素上。
<div id="mydiv" data-test='{"1":"apple", "2":"banana"}'>Custom data</div>
我知道我可以使用
访问data-test
中存储的对象的各个键
$('#mydiv').data('test')["1"]
但可以 重新分配 个人密钥这样吗?它有效,但没有记录。其次,在使用浏览器的开发者工具检查元素时,我仍然看到旧的值,即在这种情况下为“apple”。 JSFiddle
$('#mydiv').data('test')["1"] = "pear"
更新 - 找到了更多相关的Q&amp; A(不是真的重复,因为我的主要问题是关于分配对象的各个键)
答案 0 :(得分:2)
使用.data()
设置值,在检查时不会更改元素中的值,它会在内部存储该数据。如果您想将这些更改反映到DOM元素,那么您应该使用这样的.attr()
,
$('#mydiv').data('test')["1"] = "pear"
$('#mydiv').attr('data-test', JSON.stringify($('#mydiv').data('test')));
检查该特定元素以验证更改。
答案 1 :(得分:0)
试试这个
$('#mydiv').data('test')["1"] = "pear";
$('#mydiv').attr('data-test',function(_,attr){
return JSON.stringify(attr);
});