$db = $m->test;
我想附上上面提到的数据上方的div。当代码执行时,DOM元素#test用更好的数据更新。然后我想从"对象"中获取数据。但是,mydata包含字符串表示。如何将此字符串转换为对象?底线:如何获取键/值对以进行进一步处理? JSON.parse似乎不起作用。谢谢!
答案 0 :(得分:3)
JSON.parse似乎不起作用
嗯,那是因为它希望有效 JSON。
{'x-coord': 10}
无效JSON - 此处需要双引号,{"x-coord": 10}
一旦你解决了这个问题,你就不需要自己解析了,.data()
会自动解决这个问题:
$('#test').attr('data-mydata', '{"x-coord": 10}'); // switched quotes here
var myData = $('#test').data("mydata");
var x = myData['x-coord'];
console.log('x-coord: ' + x); // result: x-coord: 10
答案 1 :(得分:0)
试试这个,在你的情况下某些编码发生了错误,所以使用JSON.stringify
传递json对象并使用JSON.parse
方法解析它也是一种最佳实践:)
$('#test').data('mydata', JSON.stringify({'x-coord': 10}));
var myData = JSON.parse($('#test').data("mydata"));
var x = myData['x-coord'];
console.log('x-coord: ' + x);
#test {
width: 100px;
height: 100px;
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id = 'test'></div>