jquery不解析数据属性中保存的数据

时间:2014-11-13 18:57:46

标签: jquery json

我正在尝试解析数据属性中保存的数据,如下所示

HTML

<div data-details="{'value':'2.38', 'image':tesco.png }"></div>

jquery的

var details = $(this).data('details');

尝试将json解析为

$.parseJSON(details)

它在控制台中返回

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

任何指导都是非常苛刻的。

*编辑即使html声明为(所有变量都包含在单引号中)

 <div class="transaction-panel matched" data-details="{'value':'2.38', 'image':'tesco.png' }" ></div>

同样的错误重新出现

1 个答案:

答案 0 :(得分:4)

details 有效的JSON,因此$.parseJSON无法读取它。您需要在键和值(字符串)值周围使用双引号。有效的JSON需要双引号

<div data-details='{"value":2.38, "image":"tesco.png"}'></div>

注意:您可以对HTML属性使用单引号或双引号。

@Vohuman所述,当你执行$(this).data('details')时,jQuery会自动为你解析JSON(它将检测到它的JSON,然后解析它),你不会&#39} ; t需要$.parseJSON

这是一个演示@swatkinshttp://jsfiddle.net/dpqpL9kv/