[英]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.