Почему когда вывожу первый раз console.log();, атрибут возвращает строку, а не объект?
А если установить через JS данный атрибут, то возвращает уже объект?
Как изначально получить объект?
var data = JSON.parse( $('.js-block-obj').data('info') );
$('.js-block-obj').on('click', function() {
console.log( data);
$( ".js-block-obj" ).data( "info", { b: 100, s: 0 } );
console.log( data );
})
.block {
height: 100px;
width: 100px;
margin: 2rem auto 0;
border: 2px solid #eaeaea;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block js-block-obj" data-info="{"b": 10, "s": 1}"></div>
JSON.parse не работает, выдает ошибку:
Unexpected token b in JSON at position 2
Если в атрибуте валидный JSON, то jQuery сам возвратит Вам объект
jQuery(function($) {
var data = $('.js-block-obj').data('info');
$('.js-block-obj').on('click', function() {
console.log(data);
$(".js-block-obj").data("info", {
b: 100,
s: 0
});
console.log(data);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="block js-block-obj" data-info='{"b": 10, "s": 1}'>Click</button>
JSON.stringify, а после чтения JSON.parse.elem.dataset.attrName для data-attr-name="...".getAttribute.data можно сохранять что угодно.Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости