从使用.data()添加的对象字符串中获取值
Get value from Object string added using .data()
$('#test').attr('data-mydata', "{'x-coord': 10}");
var myData = $('#test').data("mydata");
var x = myData['x-coord'];
console.log('x-coord: ' + x);
我想把上面提到的数据附加到div上面。在执行代码时,DOM元素#test将使用数据进行更新,这非常好。然后我想从"对象"中获取数据。但是,mydata包含字符串表示。如何将这个字符串转换为对象?底线:如何获得键/值对以进行进一步处理?JSON。Parse似乎不起作用。谢谢你!
http://jsfiddle.net/quint/zyozqwv2/JSON。解析似乎不起作用
嗯,那是因为它期望有效的 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
http://jsfiddle.net/zyozqwv2/1/试试这个,在你的情况下一些编码发生了错误,所以使用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>
相关文章:
- 字符串对象类型或基元类型也是如此
- Javascript-如何从字符串/对象引用回调
- JavaScript,字符串/对象操作的例外
- 如何在require中传递字符串/对象
- 字符串对象比较总是返回false
- 对字符串对象调用 .localeCompare 与构造特制的 Intl.Collator 对象之间的性能差异
- 将变量打印到控制台时出现意外字符串:[对象窗口]
- 如何使用javascript在字符串对象中添加原型
- 如何在 JavaScript 中设置/更新字符串对象的值
- jQuery:在 $.each 中从字符串类型转换为字符串对象
- 将属性添加到字符串对象时出现问题
- 从字符串对象中删除第一个出现的字母
- 如何正确地将JQuery函数从表单的输入标记中检索到的这些字符串对象转换为数字
- 转换“;字符串对象“;到对象
- Javascript中字符串对象到字符串原语的转换
- JavaScript符号类型:(非字符串对象键)
- 正在重新定义字符串对象中的长度属性
- 带有字符串对象的jQuery选择器不起作用
- 如何在javascript中将JSON字符串对象打印为下拉列表
- 将日期字符串对象转换为其他格式