我有一些错误,比如
未捕获的SyntaxError:意外的输入结束
我在函数中放入一些参数时出错,我的代码就像这样
var now = "2018-04-17 11:10:20";
var div = document.createElement("div");
var element = document.getElementById("box");
element.appendChild(div);
div.setAttribute("id", "card");
div.setAttribute("onclick", "democlick(", now, ")");
var img = document.createElement("img");
var para = document.createElement("p");
var isi = document.createTextNode(datetime);
para.appendChild(isi);
var element_div = document.getElementById("card");
element_div.appendChild(img);
element_div.appendChild(para);
img.setAttribute("src", "markermotor.png");
function democlick(a){
var now = a;
console.log(now);
}
请告诉我这段代码有什么问题? 感谢
答案 0 :(得分:4)
问题在于:
var now = "2018-04-17 11:10:20";
div.setAttribute("onclick", "democlick(", now, ")");
您为setAttribute
提供了4个参数 - 后两个参数无法识别。一旦该行运行,在HTML标记中,它看起来像
<div onclick="democlick(">
这是无效的语法。首先将它放在一个字符串中并正确连接:
div.setAttribute("onclick", "democlick('" + now + "')");
或者更好的是:内联事件处理程序基本上是在HTML标记内部进行评估 - 它们是不好的做法,导致代码很少,难以管理的代码,例如您现在正在经历的内容。请认真考虑使用JavaScript附加您的活动:
div.addEventListener('click', () => democlick(now));