如何解决问题:参数列表后未捕获到的SyntaxError:缺少)

时间:2019-04-21 07:02:07

标签: javascript html css

因此,我基本上是在尝试使用Vanilla JS创建一个书签应用程序,该应用程序将输入的网站存储为书签,并且可以在按下删除图标时删除该书签。我正在尝试使用HTML中的onclick()将网站url值返回给delete函数。但是,当我单击删除图标

时,出现以下错误
  

参数列表后未捕获到的SyntaxError:缺少)。

我不确定是什么问题。

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/>';
}

1 个答案:

答案 0 :(得分:0)

我在共享代码段中发现了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>