Задать вопрос
@AFI19

Как получить обьект из data аттрибута?

Почему когда вывожу первый раз console.log аттрибут возвращает строку, а не обьект.
А если установить через js данный аттрибут, то возвращает уже обьект? Как изначально получить обьект?
<div class="block js-block-obj" data-info="{ b 10, s: 1 }"></div>


console.log( $('.js-block-obj').data('info') );

$( ".js-block-obj" ).data( "info", { b: 100, s: 0 } );

console.log( $('.js-block-obj').data('info') );
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Krasnodar_etc
@Krasnodar_etc
fundraiseup
JSON.parse( $('.js-block-obj').data('info') );
Ответ написан
ms-dred
@ms-dred
Вечно что то не то и что то не так...
Если JSON.parse не устраивает, можно делать так
<div class="block js-block-obj" data-info-b=10 data-info-s=1></div>
Ответ написан
Комментировать
<div class="block js-block-obj" data-info="{ b: 10, s: 1 }"></div>
            
    ...
    
    $.fn.jsonData = function(name) {
        var data = this.data(name);
        if (typeof data === "string") {
            data = JSON.parse(data);
            this.data(name, data);
        }
        return data;
    };

    ...

    console.log( $('.js-block-obj').jsonData('info') );

    $( ".js-block-obj" ).data( "info", { b: 100, s: 0 } );

    console.log( $('.js-block-obj').jsonData('info') );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы