javascript 中出现missing ) after argument list的错误

今天在写html页面中使用JavaScript拼凑DOM元素时,出现“missing ) after argument list ”的错误,试了很长时间才解决,记录以便以后查看

<ul class="dropdown-menu" id="menus">
<script type="text/javascript">
$(function () {
$.post('/ImageManager/GetAllImageData?plugin=LS.SGYC.Management', { page: 1, rows: 100 }, function (data) {
 $.each(data, function (index, value) {
 $('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(" + value.ImageUrl + ")'>" + value.ImageName + "</a></li>");
})
 }, 'json')
})
</script>
</ul>

错误出在下面这句代码

$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(" + value.ImageUrl + ")'>" + value.ImageName + "</a></li>");

主要是双引号和单引号的嵌套使用
测试一、测试解决方案时,试着在value.ImageUrl处添加单引号(如下)

$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage('" + value.ImageUrl + "')'>" + value.ImageName + "</a></li>");

结果出现“unexpected }”的错误
测试二、将最外面的双引号和内部的单引号,全部互换,如下

$('#menus').append('<li><a href="javascript:void(0)" onclick="showCompareImage("' + value.ImageUrl + ')">' + value.ImageName + '</a></li>');

发现错误任然存在。
查找解决方案后,使用转义符将双引号进行转义,解决问题,最终代码如下:

$('#menus').append("<li><a href='javascript:void(0)' onclick='showCompareImage(\"" + value.ImageUrl + "\")'>" + value.ImageName + "</a></li>");

GOOD LUCK!!!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值