2017-03-17 45 views
0

我使用JSON.stringify()将html对象数组保存在html数据属性中。当我尝试使用jquery .data()函数检索数据时,我没有得到反序列化的javascript对象数组,但给了我简单的json字符串。我读,jquery的.data()功能反序列化JSON字符串作为文档引用jquery数据属性不解析json字符串

当数据属性是一个对象(以“{”)或阵列(以“[”开头)然后jQuery.parseJSON用于解析字符串; 它必须遵循有效的JSON语法,包括带引号的属性名称。如果 值不是可解析为一个JavaScript值,则保留为 串

我想,我的是一个有效的JSON字符串,因为,如果我尝试$.parseJSON上,它给我回javascript对象数组。

请帮忙!

回答

0

您不需要使用jQuery.data()将对象串存起来。只是存储像这样的对象:

var myobject = { "name":"john", "age":30}; 
 

 
jQuery('#dataholder').data('theobject',myobject); 
 

 
console.log(jQuery('#dataholder').data('theobject')); 
 

 
console.log(jQuery('#data_attribute_method').data('theobject'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div id="dataholder"></div> 
 

 
<div id="data_attribute_method" data-theobject='{ "name":"jim", "age":31}'></div>

jQuery将解析(作为对象)的渲染时间硬编码的数据属性,但任何数据属性你算账设置为字符串,将被存储为文本无论是否包裹在大括号中。