【发布时间】:2020-09-21 02:16:52
【问题描述】:
在我的代码中我需要这样做:
function myFunction() {
/*more code*/
let id = 12;
let name = "something";
deleteBtn.setAttribute("onclick", "otherFunction("+id+","+name+")");
}
其中
function otherFunction(id, name){
/*does other stuf*/
}
问题是,当我运行代码并加载 html 页面时,我收到此错误:
SyntaxError: missing ) after argument list.
我不知道我做错了什么。
【问题讨论】:
-
deleteBtn.onclick = () => otherFunction(id, name); -
deleteBtn.addEventListener('click', () => otherFunction(id, name)) -
那个代码不会有那种效果。如果您将
name更改为其中带有空格的东西,我可以看到它会产生这种效果。您应该提供minimal reproducible example 并使用问题编辑器的实时演示功能。 -
以编程方式,通过将字符串混合在一起来生成 JavaScript 是一场噩梦:它很难调试,并且具有任何涉及
eval类进程的常见安全风险。不要这样做。使用addEventListener和函数而不是字符串。
标签: javascript html parameter-passing