Храните и используйте массив, используя тег данных HTML и jQuery
Я пытаюсь сохранить массив в теге данных HTML. Например:
<div data-locs="{'name':'London','url':'/lon/'},{'name':'Leeds','url':'/lds'}">
Я получаю доступ к этим данным с помощью jQuery. Я понимаю, что это хранится как строка, и я пробовал различные методы, чтобы преобразовать его в массив, но я ударил стену. Если вы посмотрите на эту страницу jsFiddle, вы увидите полный пример того, что я пытаюсь сделать.
http://jsfiddle.net/B4vFQ/
Любые идеи?
Спасибо!
Ответы
Ответ 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.