我必须从
获取当前字符串<div id="someif" array-data="2012-03-01:1,2012-03-11:1,2012-03-21:1"></div>
var mystring={2012-03-01:1,2012-03-11:1,2012-03-21:1}
并且需要创建这个js对象
var dates_allowed = {
'2012-03-01': 1,
'2012-03-11': 1,
'2012-03-21': 13
};
我试过但没有结果 - 我收到错误
jQuery.parseJSON(myString);
谢谢!
答案 0 :(得分:1)
<强>解决方案强>
使用您当前的HTML,您可以执行以下操作:
var dates_allowed = {};
$('#someif').attr('array-data').split(',').each(function(){
var date = this.split(',');
dates_allowed[date[0]] = date[1];
});
更好的解决方案
但在我看来,您最好通过将HTML更改为以下内容来利用jQuery data:
<div id="someif" data-dates="{"2012-03-01":1,"2012-03-11":1,"2012-03-21":1}"></div>
使用以下JavaScript:
var dates_allowed = $('#someif').data('dates');
答案 1 :(得分:0)
您无法使用JSON解析类似'2012-03-01:1,2012-03-11:1,2012-03-21:1'的字符串
这个字符串是可解析的:
'[{"allowed":"2012-03-01","index":"1"}, {"allowed":"2012-03-11","index":"1"},{"allowed":"2012-03-21","index":"1"}]'
因此,用作data attribute
<div id="someif" data-allowed='[{"allowed":"2012-03-01","index":"1"}, {"allowed":"2012-03-11","index":"1"},{"allowed":"2012-03-21","index":"1"}]'>
var myAllowedDates = JSON.parse($('#someif').attr('data-allowed'));