切换按钮标签时如何修改Pomodoro番茄钟计时器的时长
代码问题与修复方案
你的代码存在两处核心错误:
document.getElementsByClassName返回的是所有匹配类名的元素组成的类数组集合,而非单个DOM元素,无法直接调用元素属性方法。如果页面仅存在一个休息tab,通过下标[0]取第一个匹配元素即可。- 原生JS不存在DOM元素的
hasClass方法,该方法是jQuery的专属语法,原生判断类名需要调用classList.contains方法。
修复后的代码如下:
function changeTimeBreak() { // 取第一个匹配的休息tab元素 const breakTab = document.getElementsByClassName('break-tab')[0] // 用原生classList.contains判断类名是否存在 if (breakTab.classList.contains('active')) { minutes = 10 updateCounterEl() return } }
额外注意:你需要将该函数绑定到break-tab元素的点击事件上,才会在点击切换tab时触发时长修改逻辑,绑定示例:
document.getElementsByClassName('break-tab')[0].addEventListener('click', changeTimeBreak)
内容的提问来源于stack exchange,提问作者Vitoria
相关产品推荐
相关产品推荐

