Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2013, 20:06
Новичок на форуме
Отправить личное сообщение для Askhsiv_1 Посмотреть профиль Найти все сообщения от Askhsiv_1
 
Регистрация: 20.12.2009
Сообщений: 8

Изменение значений JSON в атрибуте data
привет всем! поможите ибо заблудился и не нахожу ответов)

есть элемент
<div id="test" data-json='{"param_1":"value_1","param_2":""}'></div>

и вот такой код:
var foo = $('#test').data('json');
console.log(foo);

if(!foo.param_2) foo.param_2 = 'value_2';
	
var bar = $('#test').data('json');
console.log(bar);

первый console.log выводит:
Object { param_1="value_1", param_2=""}
и это понятно, но второй:
Object { param_1="value_1", param_2="value_2"}
как? почему? ведь data не переназначалась!
как будто в переменную foo назначилась ссылка на объект data.
вот собственно и вопрос: как избежать такого поведения?


P.S.
знаю что JSON можно и так достать:
var foo = $.parseJSON($('#test').attr('data-json'));

но тогда, если действительно понадобится его переназначить, так не получится:
$('#test').data('json', new_json_obj);

придётся и новое значение задавать аналогично:
$('#test').attr('data-json', JSON.stringify(new_json_obj));

и вообще такое решение не красиво и убивает всю логику работы с data
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2013, 20:15
Новичок на форуме
Отправить личное сообщение для Askhsiv_1 Посмотреть профиль Найти все сообщения от Askhsiv_1
 
Регистрация: 20.12.2009
Сообщений: 8

пока писал вопрос придумал вот такой костыль:
var foo = $.extend({}, $('#test').data('json'));

но неужели нету более адекватного и элегантного решения?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Json ответ, работа с data SergeyMiracle AJAX и COMET 7 03.07.2013 19:29
Сортировка JSON данных в цикле Fareastaz jQuery 12 15.03.2013 20:20
Ext grid combobox json evgen.matyaschuk ExtJS 1 18.06.2012 18:43
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10