如果我知道元素上存在某个数据属性并且它是一个对象,那么如何将某些东西存储为该数据对象的新属性?
例如,我有这个div:
<div id="theDiv" data-test1="{string: 'test 1 data'}"></div>
我正试图像这样设置数据:
div.data(["test1"]["number"], 1);
但这让我无处可去。 div.data(["test1"]["number"]) = 1;
让我在分配错误中左撇子。
答案 0 :(得分:5)
您必须获取该值,然后重新保存它:
div.data('test1', function(prev) {
prev.number = 1;
return prev;
}(div.data('test1')));
这样做可能是安全的:
div.data('test1').number = 1;
但是那种事情让我有了意志。
编辑 - 如果你想让jQuery理解你的JSON,它必须是有效的:
<div id="theDiv" data-test1='{"string": "test 1 data"}'></div>
仅限双引号,并且还必须引用属性名称。