我有带有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 ?
});
答案 0 :(得分:2)
您在存储时忘了将对象jsonify。
$('#colors').attr('data-colors', JSON.stringify(obj));
提示:使用.data('attribute-name')
访问数据属性。 E.g。
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;