如何遍历audio元素节点列表,实现暂停时将currentTime重置为0?
解决Audio元素暂停时重置currentTime的问题
你这段代码无法实现暂停时重置播放进度的需求,核心有两个错误:
- 对象引用错误:
myAudio是通过getElementsByClassName获取的HTML元素集合,不是单个audio标签。你在回调里写的myAudio.currentTime = 0根本无法定位到触发暂停事件的那个音频元素,应该用event.target来指向当前触发事件的audio。 - 语法不完整:
addEventListener的调用缺少闭合括号),循环体建议加上大括号{},避免代码歧义。
修正后的代码如下:
const myAudio = document.getElementsByClassName("myAudio"); for (let i = 0; i < myAudio.length; i++) { myAudio[i].addEventListener("pause", (event) => { event.target.currentTime = 0; }); }
修改后,任意一个audio元素暂停时,都会自动将自身的播放进度重置为0,不管是点击自带控件的暂停按钮,还是通过其他方式触发暂停事件,逻辑都能正常生效。
内容的提问来源于stack exchange,提问作者BarbE
相关产品推荐
相关产品推荐

