按下下面创建的按钮时,它返回以下错误:
“1 未捕获的语法错误:意外的标记(”
在 html 文件顶部的 DOCTYPE html 中。
function createButton(check){
var btn = document.createElement("button");
btn.setAttribute("onclick", "function(){checkQuestion(check);}");
var textbtn = document.createTextNode("Submit");
btn.appendChild(textbtn);
document.body.appendChild(btn);
check 是一个变量,它引用一个指定问题的数字,用 checkQuestion() 进行检查。
是上面代码的错误吗?
最佳答案
onXYZ
属性样式的处理程序应该是逐步代码;浏览器将它们包装在一个函数中。所以 onXYZ
处理程序最终会变成这样:
function onclick(event) {
function() {
checkQuestion(check);
}
}
可以看到问题:生成的函数内容无效。
因此,如果使用 onXYZ
处理程序,它应该是:
btn.setAttribute("onclick", "return checkQuestion(check);");
...但请注意,在这种情况下,check
必须是一个全局变量。
相反,您可能想要分配给 onclick
属性:
btn.onclick = function() { return checkQuestion(check); };
...这允许它与它关闭的 check
一起工作;在您的情况下,check
是生成按钮的调用的 createButton
函数的参数。
或者使用 addEventListener
除非需要旧版支持(IE8 和更早版本,包括 IE 的 [in] 兼容模式):
btn.addEventListener("click", function() {
return checkQuestion(check);
}, false);
关于javascript - 按钮在 "Uncaught SyntaxError: Unexpected token ("中创建 "<DOCTYPE html>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847373/