首页 > 解决方案 >

  • 得到一些元素后消失
  • 问题描述

    我正在尝试为视频播放器制作章节,但是我遇到了一些困难。当您运行下面的代码时,测试 li 会出现或不显示视频,但如果您取消注释这两行,li 就会消失。看起来页面在脚本之前没有加载,但我找到的解决方案对我没有帮助。问题是什么?

    <!DOCTYPE html>
    
    <html lang="ru">
        <head>
            <title>
                Video Player
            </title>
        </head>
        <body>
            <video id="video" width="800" height="600" autoplay controls>
                <source src="Video.mp4" type="video/mp4">
                <track id="track" src="Video.vtt" kind="chapters" srclang="en">
            </video>
    
            <ol id="Chapters">
                <!---There chapters will be--->
            </ol>
    
            <script type="text/javascript">
                // let Video = document.getElementById("video");
                // let Tracks = Video.getElementById("track");
                let Chapt = document.getElementById("Chapters");
                let Text = document.createTextNode("test");
    
                let li = document.createElement("li");
                Chapt.append(li);
                li.appendChild(Text);
            </script>
        </body>
    </html>
    

    标签: javascripthtmlhtml5-video

    解决方案


    那是因为document.getElementById("video")正在返回一个DOM "Element" objectElement对象没有 method getElementById,这仅仅是因为 for 的值id应该在文档中只出现一次。

    对您的代码的修复是使用:document.getElementById("track").


    推荐阅读