分配存储在jQuery.data对象的各个键()(Assigning individual keys

2019-10-20 12:42发布

我已经存储在使用元件的自定义数据jQuery.data()方法。

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

我知道我可以访问存储在对象的各个键data-test使用

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

它是确定重新分配这样的单独的钥匙 ? 它的工作原理,但它不记录。 其次,对检查使用浏览器的开发者工具的元素,我仍然看到旧值即在此情况下,“苹果”。 的jsfiddle

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

更新 -发现更多相关的Q&A(不是真的复制,因为我的主要问题是关于分配对象的各个键)

  • 无法使用jQuery数据来设置数据属性()API
  • 为什么不改变jQuery的$ .fn.data()更新相应的HTML 5数据- *属性?
  • 无法更新数据属性值的答案评论商量好了:

Answer 1:

使用.data()设置的值,当你检查它不会改变元素的值,它会在内部存储数据。 如果你想以反映这些变化的DOM元素,那么你应该使用.attr()这样的,

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

DEMO

检查是否要修改特定的元素。



Answer 2:

尝试这个

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


文章来源: Assigning individual keys of object stored in jQuery.data()