我正在尝试使用jquery从数据属性中获取数据。
这里有什么:
<div id="x" data-foo="{top:'100', left:'40', width:'50'}">
和在javascript中
x = $('#x').data();
console.log( x.foo.top ) //undefined
我也尝试了JSON解析,但是那时我收到有关意外令牌的错误。
答案 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 );
希望有帮助