You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript报错Uncaught SyntaxError: Unexpected end of input求助

解决Uncaught SyntaxError: Unexpected end of input错误

嘿,这个问题我太熟悉了!你遇到的Uncaught SyntaxError: Unexpected end of input错误,根源出在你设置onclick属性的方式上,咱们一步步拆解看看:

问题到底出在哪?

你这段代码里的关键错误是这句:

div.setAttribute("onclick", "democlick(", now, ")");

setAttribute的第二个参数只能是单个字符串,但你传了三个独立的参数:"democlick("、now、")"。浏览器只会读取第一个参数作为onclick的值,最终生成的代码是democlick(——这明显是个未闭合的函数调用,直接触发了语法错误。

而且就算你拼接了字符串,还有个隐藏问题:now是日期字符串,直接放在函数参数里会被当成JavaScript表达式解析,而不是字符串值,同样会报错。

两种修复方案

方案1:正确拼接字符串(内联事件方式)

把参数拼成一个完整的字符串,同时给now加上单引号(注意外层用双引号,内层用单引号避免冲突):

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

这样生成的onclick属性值就是democlick('2018-04-17 11:10:20'),语法完全合法。

方案2:使用事件监听器(更推荐)

内联事件处理不仅容易出现语法问题,还不利于代码维护。更专业的做法是用addEventListener绑定事件,这样不需要处理字符串拼接和引号转义:

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");
// 用addEventListener绑定点击事件
div.addEventListener('click', function() {
  democlick(now);
});
// 后面的代码继续...
var img = document.createElement("img");
var para = document.createElement("p");
var isi = document.createTextNode(datetime);

这种方式直接把变量now传给democlick函数,完全避免了字符串相关的语法错误,代码也更清晰。

内容的提问来源于stack exchange,提问作者Nugka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:27:17