jQuery Ajax调用$.each报missing ) after argument list语法错误
Uncaught SyntaxError: missing ) after argument list报错排查 代码存在两处问题,其中字符串拼接错误是直接触发语法报错的核心原因:
- 遍历参数错误:
$.each第一个参数错误传入了字符串'data.color',此处不需要加引号,应直接传入接口返回的颜色数组对象data.color,加引号后代码会尝试遍历普通字符串,无法获取到颜色数据。 - 字符串拼接语法错误:拼接
<option>标签时,变量value和前后的静态字符串未使用+运算符连接,JS引擎无法识别断句逻辑,直接抛出参数列表缺少右括号的错误;同时原拼接逻辑写了冗余双引号,生成的下拉选项HTML结构不符合规范。
触发报错的问题代码段
$.each('data.color',function(key,value){ $('select[name="color"]').append('<option value=" 'value' ">" 'value' "</option>"); });
修正后的完整业务代码
<script> $(document).ready(function(){ $('body').on('click','#addcart',function(){ var id = $(this).val(); $.ajax({ type: 'GET', url: '/product/view/modal/'+id, dataType: 'json', success:function(data){ $('#pname').text(data.product.name_en); $('#price').text(data.product.selling_price); $('#pcode').text(data.product.code); $('#pcategory').text(data.product.category.name_en); $('#pbrand').text(data.product.brand.brand_name_en); $('#pimage').attr('src','images/'+data.product.thumbnail); // 修正遍历参数、字符串拼接逻辑 $.each(data.color,function(key,value){ $('select[name="color"]').append('<option value="'+value+'">'+value+'</option>'); }); } }) }); }); </script>
替换后即可正常遍历颜色数据,生成结构正确的下拉选项,语法错误会直接消除。
内容的提问来源于stack exchange,提问作者mohamed ahmed
相关产品推荐
相关产品推荐

