Подтвердить что ты не робот

Храните и используйте массив, используя тег данных HTML и jQuery

Я пытаюсь сохранить массив в теге данных HTML. Например:

<div data-locs="{'name':'London','url':'/lon/'},{'name':'Leeds','url':'/lds'}">

Я получаю доступ к этим данным с помощью jQuery. Я понимаю, что это хранится как строка, и я пробовал различные методы, чтобы преобразовать его в массив, но я ударил стену. Если вы посмотрите на эту страницу jsFiddle, вы увидите полный пример того, что я пытаюсь сделать.

http://jsfiddle.net/B4vFQ/

Любые идеи?

Спасибо!

4b9b3361

Ответ 1

Если вы используете действительные JSON ([ и ] для массива, двойные кавычки вместо одиночных), например:

<div id="locations" data-locations='[{"name":"Bath","url":"/location/bath","img":"/thumb.jpg"},{"name":"Berkhamsted","url":"/location/berkhamsted","img":"/thumb.jpg"}]'>

Тогда у вас есть (используя .data()), чтобы получить массив:

$('#locations').data('locations');

Вы можете протестировать его здесь.

Ответ 2

Попробуйте добавить [ и ] в начало и конец (это делает его действительным JSON). После этого вы можете использовать JSON.parse(), чтобы преобразовать его в собственный JavaScript-объект.

Ответ 3

Попробуйте следующее:

var testOne = eval("new Array(" + $('#locations').data('locations') + ")");

Посмотрите на него в jsfiddle.