jQuery解析数据数组意外令牌

时间:2017-07-29 18:50:03

标签: jquery arrays parsing templates

我在使用jQuery parseJSON解析数据数组时遇到问题,返回:

  

SyntaxError:位置1的JSON中的意外标记

var selected = $('input[type=radio][name=packs]:checked');
gf_allowed = $.parseJSON(selected.data('gf_allowed'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="packs" value="361" data-price="22,00" data-desc=" 2 GGFF + BUGGIE(22.00EUR pax)" data-gf_exact="True" data-gf_allowed="[&quot;2&quot;, &quot;4&quot;]" checked="true">

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的代码的问题是因为jQuery已经识别出属性中保存的值是JSON,因此将其解析为对象。你再次解析它的问题是造成这个问题的原因。

要解决此问题,请删除$.parseJSON()电话:

var selected = $('input[type=radio][name=packs]:checked');
var gf_allowed = selected.data('gf_allowed'); // jQuery has already parsed this for you

console.log(gf_allowed);
console.log(gf_allowed[1]); // = 4
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="packs" value="361" data-price="22,00" data-desc=" 2 GGFF + BUGGIE(22.00EUR pax)" data-gf_exact="True" data-gf_allowed="[&quot;2&quot;,&quot;4&quot;]" checked="true">