как преобразовать строку из атрибута div в объект - PullRequest
1 голос
/ 12 августа 2011

я пытаюсь преобразовать строку в объект.я использую:

var ec = $(".selector").attr('build'); // this return {abc:'one', bcm:'two', etc...}
var et = ec.abc // this return me undefined

я пытаюсь таким образом

var et = new Object(ec);
var t = et.abc // this return undefined

Как можно преобразовать это ??

Ответы [ 5 ]

5 голосов
/ 12 августа 2011

Если этот атрибут содержит string, который просто находится в формате объекта Json, вы должны сначала проанализировать string, чтобы иметь возможность доступа к его элементам так, как если бы вы работали с Json :

var ec = $(".selector").attr('build');
var myObject = JSON.parse(ec);
var et = myObject.abc;

Конечно, вы можете добавить проверку вокруг этого string, чтобы убедиться, что он всегда будет в той форме, в противном случае вы можете столкнуться с проблемами, сделав такие предположения.

Кроме того, есть ли причина, по которой вы храните строку Json в атрибуте HTML?

1 голос
/ 12 августа 2011

Использование $.parse() метод

var et= $.parse($(".selector").attr('build'));
var t = et.abc
0 голосов
/ 12 августа 2011

Вместо использования attr() попробуйте использовать метод data () , который позволит вам хранить объекты, а не только строки.

Когда вы сохраняете ваш объект, используйте следующий синтаксис:

var d = {abc:'one', bcm:'two'};
$(".selector").data('build', d);

Затем, когда вам нужно получить ваш объект, используйте:

var d = $(".selector").data('build');
//access properties
var x = d.abc;

В противном случае, если вы используете attr(), вам нужно будет проанализировать результат в объект, для которого вы можете использовать parseJSON .

0 голосов
/ 12 августа 2011

Вам нужно проанализировать строку, используя анализатор JSON.Вы не можете просто передать строку в конструктор Object.

0 голосов
/ 12 августа 2011

Если это

var ec = $(".selector").attr('build');

возвращает это

// this return {abc:'one', bcm:'two', etc...}

, значит, у вас уже есть объект.

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