javascript - 我该如何解决这个问题: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/>';
}
解决方案
我在共享代码段中发现了 2 个问题:
- 正如@NewToJS 提到的那样-添加单引号来包装要在函数调用中传递的值
- 缺少 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>
推荐阅读
- reactjs - React JS 和 Google 电子表格:无法读取 Null 的属性“2”
- .net-core-3.1 - 为什么新的 .net core 控制台应用程序的 exe 文件这么大?
- security - 如何通过标签限制一组用户的 Jenkins 节点
- python - com.chaquo.python.PyException: ConnectionError: HTTPSConnectionPool(host='www.flipkart.com', port=443): url 超过了最大重试次数
- android - 应用关闭时,intent.action.PHONE_STATE 广播接收器不工作
- c++ - 即使将“g++”添加到系统路径变量中,也无法识别它
- javascript - 如何为反应组件创建唯一键
- sql - 有关列规范的 MS SQL Server Management Studio 的基本问题
- php - 如何使用 codeIgniter 获取关联值?
- javascript - 可以切换大小写将等待等待结果