如何在jQuery数据中设置属性内的属性()

时间:2013-07-17 21:25:35

标签: javascript jquery jquery-data

如果我知道元素上存在某个数据属性并且它是一个对象,那么如何将某些东西存储为该数据对象的新属性?

例如,我有这个div:

<div id="theDiv" data-test1="{string: 'test 1 data'}"></div>

我正试图像这样设置数据:

div.data(["test1"]["number"], 1);

但这让我无处可去。 div.data(["test1"]["number"]) = 1;让我在分配错误中左撇子。

http://jsfiddle.net/VM8VW/

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>

仅限双引号,并且还必须引用属性名称。