一尘不染

将JSON对象存储在HTML jQuery的data属性中

html

我使用这种data-方法在HTML标记中存储数据,如下所示:

<td><"button class='delete' data-imagename='"+results[i].name+"'>Delete"</button></td>

然后,我在这样的回调中检索数据:

$(this).data('imagename');

很好 我所坚持的是尝试保存对象,而不仅仅是保存其属性之一。我试图这样做:

<td><button class='delete' data-image='"+results[i]+"'>Delete</button></td>

然后,我尝试像这样访问name属性:

var imageObj = $(this).data('image');
console.log('Image name: '+imageObj.name);

日志告诉我undefined。所以看来我可以在data-属性中存储简单的字符串,但不能存储JSON对象…

我也尝试过使用这种运气不好的语法:

<div data-foobar='{"foo":"bar"}'></div>

关于使用该data-方法如何将实际对象存储在HTML标记中的任何想法?


阅读 922

收藏
2020-05-10

共1个答案

一尘不染

而不是将其嵌入文本中,只需使用 $('#myElement').data('key',jsonObject);

它实际上不会存储在html中,但是如果您使用的是jquery.data,则无论如何都是抽象的。

要获取JSON, 请不要解析它 ,只需调用:

var getBackMyJSON = $('#myElement').data('key');

如果您获取的[Object Object]不是直接JSON,只需通过数据键访问JSON:

var getBackMyJSON = $('#myElement').data('key').key;
2020-05-10