Javascript 脚本似乎在加载页面之前运行

Javascript 脚本似乎在加载页面之前运行,javascript,Javascript,我遇到了一个问题,还没有找到有效的解决方案。我尝试在addEventListener行之前添加if(ok按钮)条件,但仍然无法获得所需的输出。i、 e变量para指向的文本不会消失 let para = document.getElementById('paragraph'); let okButton = document.getElementById('Ok-button'); okButton.addEventListener('click', function() { para

我遇到了一个问题,还没有找到有效的解决方案。我尝试在
addEventListener
行之前添加if(ok按钮)条件,但仍然无法获得所需的输出。i、 e变量para指向的文本不会消失

let para = document.getElementById('paragraph');
let okButton = document.getElementById('Ok-button');

okButton.addEventListener('click', function() {
    para.style.display='none';
});
错误消息如下所示:

script.js:4未捕获类型错误:无法读取属性 的“addEventListener” VM2610 script.js:4(匿名)@script.js:4处为空

可能的原因:

  • 您的元素位于javaScript下面

  • 您的按钮id为“ok button”,但您已使用“ok button”。Id是区分大小写的。(在DOM和JS的上下文中)

    • 可能的原因:

      • 您的元素位于javaScript下面

      • 您的按钮id为“ok button”,但您已使用“ok button”。Id是区分大小写的。(在DOM和JS的上下文中)


      我假设您的脚本位于文件的顶部。因此,如果您认为从上到下加载的文件找不到okButton,因为在设置okButton时页面的其余部分(DOM)没有加载。将脚本移动到文件的底部或将其放入页面加载函数的init()中,这样,一旦页面完全加载,您将设置OK按钮,它将存在于页面上。

      我假设您的脚本位于文件的顶部。因此,如果您认为从上到下加载的文件找不到okButton,因为在设置okButton时页面的其余部分(DOM)没有加载。将脚本移动到文件底部或将其放入页面加载函数的init()中,这样,一旦页面完全加载,您将设置OK按钮,它将存在于页面上。

      尝试在按钮代码之前添加If语句

      var Ok-button = document.getElementById("Ok-button");
      if (Ok-button.clicked == true) {
                  para.style.display='none';
      }
      

      尝试在按钮的代码之前添加If语句

      var Ok-button = document.getElementById("Ok-button");
      if (Ok-button.clicked == true) {
                  para.style.display='none';
      }
      

      正如在一些评论中提到的,我在.js文件中使用的元素在我的HTML文档中的脚本标记下面声明。将script标记移到closing body标记的正上方解决了这个问题。

      如一些评论所述,我在.js文件中使用的元素在HTML文档中的script标记下方声明。将脚本标记移到结束正文标记的正上方解决了问题。

      在段落和按钮之后加载js文件。检查id,因为它们也区分大小写。在段落和按钮之后加载js文件。检查id,因为它们也区分大小写。不,你错了。在addEventListener()中有函数(){}。再次检查。试试看,我想我已经为解决方案提供了资金。OP的代码很好。他只是在DOM之前加载了脚本,或者他的按钮id不匹配,因为DOM id区分大小写。解决方案必须符合OP的代码。实现这一点的方法有很多。无论如何,变量名不能使用连字符,因为连字符是运算符。不,你错了。在addEventListener()中有函数(){}。再次检查。试试看,我想我已经为解决方案提供了资金。OP的代码很好。他只是在DOM之前加载了脚本,或者他的按钮id不匹配,因为DOM id区分大小写。解决方案必须符合OP的代码。实现这一点的方法有很多。无论如何,变量名不能使用连字符,因为连字符是运算符。谢谢兄弟。元素确实在脚本标记之下,区分大小写也是一个问题。再次非常感谢:)谢谢兄弟。元素确实在脚本标记之下,区分大小写也是一个问题。再次表示感谢:)有助于解决问题。另外,我在HTML页面上使用了“ok按钮”作为id。感谢您的帮助:)有助于解决此问题。另外,我在HTML页面上使用了“ok按钮”作为id。谢谢你的帮助:)