在我的html我有一个表:<table id="table" data-keys="{{keys}}">
其中keys
是一个数组(我后来成功调用{% for k in keys %}
)。
但是在我的js中,我调用:$("#table").data("keys")
的结果是字符串:"['', 'Value1', 'Value2', 'Value3']"
有什么聪明的,我可以做,以实际获得表或我只需要解析字符串并转换它自己?
必须使用双引号使字符串成为有效的JSON。然后jQuery会自动解析它。
const a = $('#a').data("keys");
const b = $('#b').data("keys");
console.log(typeof a, a)
console.log(typeof b, b)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="a" data-keys='["", "a", "b", "c"]'></div>
<div id="b" data-keys="['', 'a', 'b', 'c']"></div>
https://api.jquery.com/data/
每次尝试将属性的字符串值转换为JavaScript值(包括布尔值、数字、对象、数组和null)[…]当字符串以'{'或'['开头时,则使用jQuery。parseJSON用于解析它;它必须遵循有效的JSON的语法包括引用属性名。不能作为JavaScript值解析的字符串不会被转换。