我正在尝试使用HTML5 data- *属性。 但是,我正在使用EasyUI框架,这是有问题的。
HTML5定义的选项设置如下:
<div data-options="{region:'north', title:'North Region', border:true}">
但是EasyUI强制它们被设置为(没有大括号):
<div data-options="region:'north', title:'North Region', border:true">
有没有办法在不编写自己的解析器函数的情况下访问属性对象?如果必须,我必须,但我认为必须有更好的方法。
感谢您的帮助。
答案 0 :(得分:1)
查看来源,有一种方法可以做到这一点。
$.parser.parseOptions(element);
仅使用提取的方法进行演示:http://jsfiddle.net/FnJAE/
注意:此方法未记录,因此如有更改,恕不另行通知。
答案 1 :(得分:0)
如果您知道它将始终被格式化为对象,您可以:
jsonData = JSON.parse("{" + element + "}");
答案 2 :(得分:0)
仅供参考,你真的不需要做所有的解析。虽然您的HTML确实需要对引号进行一些更改:See Reference jQuery.Data() HTML5
HTML
<div id="Bob" data-options='{"region":"north", "title":"North Region", "border":"true"}'></div>
脚本
console.log($("#Bob").data("options").title);
// Will return String "North Region"
console.log($("#Bob").data("options").region);
// Will return String "north"
console.log($("#Bob").data("options").border);
// Will return String "true"
console.log($("#Bob").data("options")
// will return a JSON Object but it is EASY to convert to Array
var eleData = $("#Bob").data("options"),
eleArray = new Array();
for (x in eleData) { eleArray[x] = eleData[x]; }