使用jQuery从数据属性中提取JSON

时间:2019-04-03 18:20:50

标签: javascript jquery

我正在尝试使用jquery从数据属性中获取数据。

这里有什么:

<div id="x" data-foo="{top:'100', left:'40', width:'50'}">

和在javascript中

x = $('#x').data();

console.log( x.foo.top ) //undefined

我也尝试了JSON解析,但是那时我收到有关意外令牌的错误。

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery attr获取数据 x = $('#x').attr('data-foo'); 然后像下面这样解析为json: var data = JSON.parse(x)

答案 1 :(得分:1)

请这样安排您的代码

 <div id="x" data-foo='{"top":"100", "left":"40", "width":"50"}'> 

 In JSON, Key will be double quote. 

答案 2 :(得分:0)

data-foo中的内容是Javascript Object Literal的字符串,而不是JSON

首先,您需要正确格式化JSON。见下文。

<div id="x" data-foo='{"top":"100", "left":"40", "width":"50"}'></div>

在此处详细了解。

https://medium.com/@easyexpresssoft/object-literal-vs-json-7a2084872907

然后,使用JSON.parse()来获取数据

var x = JSON.parse($('#x').attr("data-foo"));
alert( x.top );

希望有帮助