我正在使用HTML5 data
属性设置数组,如下所示:<dl data-options='[{ "multiExpand": true} ]'>
并使用jQuery抓取它:var options = $this.data('options')[0]
它有效,但我希望不再需要标记中的括号。我想写<dl data-options="multiExpand: true; otherOption: false;">
如何更改JS以获取该格式?我一直在尝试.makeArray
和.toJSON
,但他们会返回undefined
。
答案 0 :(得分:4)
您真正需要的只是属性中的有效JSON,jQuery会将其转换为对象
<dl data-options='{"multiExpand":true,"otherOption":false}'>
如果你只需要使用那种无效的语法,你必须自己解析它,比如
var arr = $('#test').data('options').split(';').filter(Boolean),
obj = (function() {
var o = {};
$.each(arr, function(_,v) {
var parts = v.split(':');
o[$.trim(parts[0])] = $.trim(parts[1]);
});
return o;
}());