JavaScript Uncaught SyntaxError:意外的输入结束

时间:2018-04-17 04:37:29

标签: javascript

我有一些错误,比如

  

未捕获的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);
}

请告诉我这段代码有什么问题? 感谢

1 个答案:

答案 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));