使用jQuery将JSON对象解析为DATA attr

时间:2017-09-07 11:35:40

标签: json

我有带有JSON字符串的DATA属性。我需要读取此JSON,从此对象中删除一些信息,然后将其写回DATA attr。一切都很好,但写JSON对象不起作用。如何将JSON对象写入DATA attr?

HTML

<div id="colors" data-colors='{"c1":"Red", "c2":"Yellow", "c3":"blue"}'></div>

<button data-color="c1">Red</button>
<button data-color="c2">Yellow</button>
<button data-color="c3">Blue</button>

的jQuery

$("button").click( function(){

    var obj = JSON.parse($('#colors').attr('data-colors'));
    button_key = $(this).data('color');

    $.each( obj, function( key, value ) {
        if (key == button_key) {
                delete obj[button_key];
        }
    });

    $('#colors').attr('data-colors', obj ); // this is not working, HOW ?
});

1 个答案:

答案 0 :(得分:2)

您在存储时忘了将对象jsonify。

$('#colors').attr('data-colors', JSON.stringify(obj));

提示:使用.data('attribute-name')访问数据属性。 E.g。

&#13;
&#13;
var color = $('#abc').data('color')

console.log(color)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="abc" data-color="red" >
&#13;
&#13;
&#13;