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

为何getElementById赋值代码行触发TS(1005)错误?

错误原因

TS(1005)是语法解析错误,你这个场景的触发点是等号左侧的变量名不符合JS/TS命名规则:

  • JS/TS中-是减法运算符,不允许出现在变量名里。你写的progress-bar2会被解析器拆成三段:progress(标识符)、-(减法运算符)、bar2(标识符),解析到后面的=时完全不符合语法逻辑,就会抛出错误,定位刚好落在=符号位置。
  • 你之前修改的是HTML/CSS里的标识名,这部分允许使用连字符,但JS/TS的变量命名规则和HTML/CSS的id/class命名规则是独立的,修改HTML/CSS里的名称不会解决JS侧的变量语法错误。
修复方法

把变量名里的连字符替换为JS/TS允许的字符即可,行业内最常用驼峰命名法:

// 正确写法:用驼峰命名,声明变量后接收DOM元素
const progressBar2 = document.getElementById("progressbarfull");

如果你确实需要用到带连字符的变量名(极不推荐),只能通过对象属性的方括号语法访问,比如全局作用域下的window["progress-bar2"],但这种写法可读性差、容易造成全局污染,日常开发不要用。

额外注意:你提到其他位置用了getElementbyID/getElementbyClassName的写法,这两个API的大小写是错误的,正确写法为getElementById(Id的I大写、d小写)、getElementsByClassName(Element后加s表复数),大小写不匹配会触发“方法不存在”的报错,建议一并修正。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:57:11