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

点击按钮出现event.target.id is not a function错误,如何解决?

问题解决:点击按钮报错‘event.target.id is not a function’

核心错误原因

event.target.id是DOM元素的属性,不是方法,你错误地把它当成函数调用event.target.id("car"),这直接触发了报错。

修复步骤及完整代码

1. 修正点击判断逻辑

把判断条件从if (event.target.id("car"))改为if (event.target.id === "car"),直接对比id属性的值即可。

2. 修正事件绑定范围

原代码document.querySelector('button')只会给页面第一个按钮绑定事件,改为直接选中id为car的按钮,确保只有目标按钮触发零件累加逻辑。

3. 修复HTML结构错误

所有页面元素必须放在<html>和<body>标签内部,同时给空id的按钮补充合理id,避免潜在的DOM操作问题。

4. 修正document.write的错误使用

原HTML中document.write(karpartz)会触发变量未定义报错,改为直接通过DOM操作更新页面内容。


修正后的完整代码

JavaScript代码

var multiplier = 1;
var carparts = 0;
// 初始化显示零件数
document.getElementById("karpartz").textContent = carparts;

function onButtonClick(event) {
  // 正确判断按钮id
  if (event.target.id === "car") {
    carparts += multiplier;
    document.getElementById("karpartz").textContent = carparts;
  }
}

// 给目标按钮绑定点击事件
const carButton = document.getElementById("car");
carButton.addEventListener('click', onButtonClick);

HTML代码

<html>
  <body>
    <h1>汽车零件收集器</h1>
    <button id="car" type="submit">
      <img src="example" alt="buttonpng" border="0" />
    </button>

    <button id="clickpower">
      upgrade click power
    </button>
    <button id="idle-upgrade">
      upgrade idle scrapping
    </button>

    <p id="karpartz"></p>
  </body>
</html>

额外优化建议

  • 用textContent代替innerHTML更新文本内容,更安全且性能更优。
  • 修正变量名拼写错误:multiplyer改为multiplier(符合英语拼写规范)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:06:18