关于在网页拼接时出现:“Uncaught SyntaxError: missing ) after argument list”的真凶在哪里

本文揭示了JavaScript中‘UncaughtSyntaxError: missing) after argument list’的常见误解,并通过实例分析了括号丢失并非唯一原因,重点讲解了拼接参数错误和引号使用规范。
摘要由CSDN通过智能技术生成

我们在写JS的时候,有时候报错“Uncaught SyntaxError: missing ) after argument list”,有些童鞋就蒙蔽了,真凶在哪里呢?

201808311535647264188732.jpg

字面翻译过来的意思:语法错误: 参数列表后面缺少 )

这不就是缺少括号的意思么?然而只是真的缺少括号才会出现这样的报错么?不尽然。今天就在做jQuery基本事件练习的时候,被这个错误给误导不浅。来来回回找了不下三四遍,没有少括号啊?

直到……找到真正的元凶,才略微有点明白出现这样错误其实不仅仅是因为“真正”的少写了一个括号哦。

其实,如果你没些漏掉括号,我们应该去找另外的原因,比如以下代码:

$('.bannerList').append('<li><a target="_blank" href="' + bannerInfo.url + '" onclick="_gaq.push(['_trackEvent', 'app_ads_banner', 'banner', 'content_top',1,true]);"><img width="100%" alt="" src="' + bannerInfo.cover + '"></a></li>')

大家看看哪里出问题了,运行后也会报错“Uncaught SyntaxError: missing ) after argument list”。

如果看不出来,我就解释下原因,报错的原因是在onclick里面的拼接参数的问题,直接写是不行的,我们需要转义下,如下操作:

onclick="_gaq.push([\'_trackEvent\', \'app_ads_banner\', \'banner\', \'content_top\',1,true]);"

我的是这样的

//搜索用户
function permissionSearch(){
	var searchUser=$("#searchUser").val();
	var appid=$("#appid").val();
	var tdStr = '';
	$.ajax({
		type: "POST",
		dataType: "json",
		url:"/admin/app/searchUser",
		data:  { 'appid': appid, 'searchUser': searchUser },
		success: function (result) {
			$('#newUser').html(result.data.name);
			if (result.state == 1) {
				tdStr='<tr> <td  class="center">新授权人</td><td  class="center"><span id="newUser">'+ result.data.name +'( '+result.data.email+')' +'</span></td><td  class="center"><button class="btn-sm table_close btn btn-danger" id="update_permission" data-dismiss="modal2" onclick="update_permission(\''+result.appid+'\',\''+result.data.email+'\',\''+result.data.name+'\',\''+result.data.mobile+'\')">授权</button></td> </tr>';
			}else{
				tdStr = '<tr> <td colspan="15" class="center">'+result.msg+'</td></tr>';
			};
			$('tbody.table_open_data').append(tdStr);
		},
	});
}

当然有时候还跟单引号和双引号有关的,不能同时用单引号和双引号,互相包含即可,这个很多童鞋会忽略问题,这里提示下,以后记住咯。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值