繁体   English   中英

jQuery数据未解析值html5数据自定义属性

[英]jquery data is not parsing value html5 data custom attribute

我有后端生成的以下HTML标签

<select name="brand" class="form-control">
    <option value="1" data-info="[{id=1, name=detail#1}, {id=2, name=detail#2}, {id=3, name=detail#3}]">brand#1</option>
    <option value="2" data-info="[{id=3, name=detail#3}, {id=4, name=detail#4}, {id=5, name=detail#5}]">brand#2</option>
</select>

我试图在用户更改选项时访问数据信息值,所以我尝试了这段代码

$('#brand').on('change', function(){
    var optionSelected = $("option:selected", this);
    var info = optionSelected.data("info")

    console.log(typeof info)
})

但是当我得到typeof信息时,我得到一个字符串,并且我需要和对象。

如果我尝试JSON.parse(info), 则会在JSON数据的第1行第3列中收到SyntaxError:JSON.parse:预期的属性名称或'}'

我了解此错误可能是由于两个原因导致信息已经解析或它是无效的json。

任何帮助表示赞赏

jQuery的JSON处理程序仅转换有效的JSON。 您所拥有的JSON无效。 具体来说,它缺少必要的引号,而您使用的是=而不是: 它应显示为:

<option value="1" data-info='[{"id":1, "name":"detail#1"}, {"id":2, "name":"detail#2"}, {"id":3, "name":"detail#3"}]'>brand#1</option>

供参考, JSON规范

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM