场景:点击目录,页面插入video标签。插入后获取video开始播放事件
问题:能打印出dom信息,但是对象的长度为0且不能绑定事件。实际问题就是,dom中成功append结构,但是浏览器还没重绘,此时绑定事件失败。除了使用setTimeout,还有其他方法吗?
场景:点击目录,页面插入video标签。插入后获取video开始播放事件
问题:能打印出dom信息,但是对象的长度为0且不能绑定事件。实际问题就是,dom中成功append结构,但是浏览器还没重绘,此时绑定事件失败。除了使用setTimeout,还有其他方法吗?
你把在插入video标签时把标签保存下来
https://jsfiddle.net/r7seguvj/
创建元素后,立刻就能绑定事件的,就算元素没有append到document中,请检查代码内部逻辑
注意是getElementsssssssssssssssssssssssssssss……ByTagName
有s的,返回来的一定是个类数组对象(HTMLCollection),引用的时候加个.item(0)
变成document.getElementsByTagName('video').item(0);
就行了。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
getElementsByTagName
和querySelector
的区别了解一下?划重点了啊。这意味着它会随着DOM树的变化自动更新自身,他是动态呢,那么结合
console
打出来的其实是快照,也是动态的。那么得出结论,你那个时候video
还没有插入进去。你可以用querySelector
验证一下传送门-去MDN看看getElementsByTagName以及HTMLCollection