首页 > 解决方案 > 我该如何解决这个问题:Uncaught SyntaxError: missing ) after argument list

问题描述

所以我基本上是在尝试使用 vanilla JS 制作一个书签应用程序,它将输入的网站存储为书签,并且可以在按下删除图标时删除书签。我正在尝试使用 HTML 中的 onclick() 将站点 url 值返回给删除函数。但是,当我单击删除图标时出现以下错误

Uncaught SyntaxError: missing ) 在参数列表之后。

我不确定问题是什么。

BMtoDisp 是包含存储网站的 JSON 对象的数组。siteName 包含来自 JSON 文件的站点名称 siteURL 包含来自 JSON 文件的站点 URL dBM 是一个 div,它在存储后显示书签。delBM() 是我想要返回 siteURL 的函数,并在单击垃圾箱(fontawesome)图标时执行删除操作。

for(var i = 0; i < BMtoDisp.length; i++)
{
    var siteName = BMtoDisp[i].sname;
    var siteURL = BMtoDisp[i].surl;
    dBM.innerHTML +="<div id='newElement'>" + '<h2>' + siteName + '</h2>' + '<a target="_blank" href=" '+siteURL+'">' + siteURL + '</a>' + '<a onclick="delBM('+siteURL+')"><i class="fas fa-trash-alt"></i><a/>';
}

标签: javascripthtmlcss

解决方案


我在共享代码段中发现了 2 个问题:

  1. 正如@NewToJS 提到的那样-添加单引号来包装要在函数调用中传递的值
  2. 缺少 div 结束标记

代码片段:

<!DOCTYPE html>
<html>
<body>

<div id="id01"></div>

<script>
function delBM(url){
	console.log(url);
}

var BMtoDisp = [];
BMtoDisp.push({sname: 'Ayon', surl: 'https://google.com'});
BMtoDisp.push({sname: 'Alfaz', surl: 'https://yahoo.com'});

var dBM = document.getElementById("id01");

for(var i = 0; i < BMtoDisp.length; i++)
{
    var siteName = BMtoDisp[i].sname;
    var siteURL = BMtoDisp[i].surl;
    dBM.innerHTML +='<div id="newElement'+ i +'"><h2>' + siteName + '</h2><a target="_blank" href="'+siteURL+'">' + siteURL + '</a><a onclick="delBM(\''+siteURL+'\')">delete me<a/></div>';
}
</script>

</body>
</html>


推荐阅读