關於在網頁拼接時出現:“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);
		},
	});
}

當然有時候還跟單引號和雙引號有關的,不能同時用單引號和雙引號,互相包含即可,這個很多童鞋會忽略問題,這里提示下,以后記住咯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM