Данная строка для преобразования объекта - PullRequest
0 голосов
/ 25 февраля 2012

Мне нужно, чтобы текущая строка была взята из

<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);

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Решение

Работая с вашим текущим HTML, вы можете сделать что-то вроде этого:

var dates_allowed = {};

$('#someif').attr('array-data').split(',').each(function(){
    var date = this.split(',');
    dates_allowed[date[0]] = date[1];
});

Лучшее решение

Но, на мой взгляд, вам лучше использовать jQuery data , изменив HTML-код на что-то вроде:

<div id="someif" data-dates="{&quot;2012-03-01&quot;:1,&quot;2012-03-11&quot;:1,&quot;2012-03-21&quot;:1}"></div>

И используя следующий JavaScript:

var dates_allowed = $('#someif').data('dates');

пример scessor JSFiddle .

0 голосов
/ 25 февраля 2012

Вы не можете разобрать строку типа '2012-03-01: 1,2012-03-11: 1,2012-03-21: 1' с JSON

Эта строка будет разбираться:

'[{"allowed":"2012-03-01","index":"1"}, {"allowed":"2012-03-11","index":"1"},{"allowed":"2012-03-21","index":"1"}]'

Итак, используется как атрибут данных

<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'));

См. этот jsfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...