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

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

大家好,又见面了,我是全栈君。

我们在写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);
		},
	});
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111458.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解释OpenStack组件介绍RabbitMQ的用处_MySQL分布式集群搭建

    解释OpenStack组件介绍RabbitMQ的用处_MySQL分布式集群搭建一、前期环境:准备三台全新的虚拟机关闭防火墙和selinux以防出现错误。更改三台虚拟机的主机名并配置好网卡:hostnamectlset-hostname主机名。修改三台虚拟机文件:vi/etc/hosts将三台主机的IP地址以及主机名写入其中。(注:三台虚拟机之间一定要相互ping通)。……

    2022年9月10日
    0
  • oracle数据库菜鸟入门

    oracle数据库菜鸟入门所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。Reddit上面有一个帖子,只用了几百个字,就把原理讲清楚了。下面是我根据这个帖子整理的内容。一、数据以文本形式保存第一步,就是将所要保存的数据,写入文本文件。这个文本文件就是你的数据库。为了方便读取,数据必须分成记录,每一条记录的长度规定为等长。比如,假定每条记录的长度是800字节,那

    2022年8月30日
    1
  • 防抖(debounce) 和 节流(throttling)「建议收藏」

    防抖(debounce) 和 节流(throttling)「建议收藏」防抖和节流是针对响应跟不上触发频率这类问题的两种解决方案。在给DOM绑定事件时,有些事件我们是无法控制触发频率的。如鼠标移动事件onmousemove,滚动滚动条事件onscroll,窗口大小改变事件onresize,瞬间的操作都会导致这些事件会被高频触发。如果事件的回调函数较为复杂,就会导致响应跟不上触发,出现页面卡顿,假死现象。在实时检查输入时,如果我们绑定onkeyup事件发请求去…

    2022年6月20日
    36
  • 基于SSM的景区旅游管理系统

    基于SSM的景区旅游管理系统项目运行截图首页展示信息攻略管理酒店管理技术描述开发工具:idea/eclipse数据库:mysqlJar包仓库:Maven前段框架:Html/Thymeleaf后端框架:spring+springmvc+mybatis+SpringBoot资料说明基于SSM的景区旅游管理系统,整体包含前后台页面,整体采用SSM框架,SpringBoot作为基础框架,前端页面采用Thymele

    2022年5月8日
    59
  • 分时系统1_属于分时系统的是

    分时系统1_属于分时系统的是分时系统:是个多道系统在给每一个任务执行的时候是按一定的时间进行的,时间到了直接切换下一个作业类似于交互系统任务多了会有切换时间,类似于中断进而要减少中断时间终断多了的,系统开销大多道批处理

    2022年8月2日
    2
  • qlistwidget虚线_QlistWidget自定义item[通俗易懂]

    qlistwidget虚线_QlistWidget自定义item[通俗易懂]东西不能知道拿来用,但可以借鉴效果简单版QListWidget*list=newQListWidget;QListWidgetItem*item=newQListWidgetItem(list,0);item->setSizeHint(QSize(100,100));QWidget*w=newQWidget(list);QHBoxLayout*layout=newQHBo…

    2022年6月6日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号