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

JavaScript转CoffeeScript后计数器代码失效且无报错问题求助

计数器CoffeeScript代码修复

你的代码核心问题是缩进错误,CoffeeScript完全依赖缩进划分代码块作用域,原代码中counters.forEach (counter) ->之后的所有代码都没有缩进,导致这些逻辑不在forEach的回调函数内部——相当于只遍历了counters但没执行任何绑定操作,自然不会有效果,也不会触发报错。

另外递减按钮的逻辑里存在冗余代码,注释掉的count--和下方的countElement.textContent = count会导致即使count不大于0时也会强制更新文本,需要清理。

修复后的代码:

counters = document.querySelectorAll('.counter')
counters.forEach (counter) ->
  incrementButton = counter.querySelector('.plus')
  decrementButton = counter.querySelector('.minus')
  countElement = counter.querySelector('.count')
  
  incrementButton.addEventListener 'click', ->
    count = parseInt(countElement.textContent, 10)
    count++
    countElement.textContent = count
    return
  
  decrementButton.addEventListener 'click', ->
    count = parseInt(countElement.textContent, 10)
    if count > 0
      count--
      countElement.textContent = count
    return
  return

关键修复点:

  • 将incrementButton、decrementButton、countElement的定义,以及两个按钮的事件监听代码全部缩进,放到forEach的回调函数内部,确保每个counter元素都能绑定对应的事件。
  • 清理递减逻辑中的冗余代码,避免不必要的文本更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:10:33