当我将脚本元素放在头部以从URL加载它时,我的Javascript不起作用

高手

我已经为一个简单的函数内联编写了代码,但是当我创建一个单独的js.file时,由于某种原因它并不想工作。我已经尝试了一切感觉,但是也许我疲倦的眼睛无法解决问题!

<!DOCTYPE html>

<html>
  <head>
    <title>Test</title>
    <script type="text/javascript" src="menu.js"></script>
  </head>
 <body>
<div class="container">
  <button name="one">Button 1</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>

</div>
<div class="container">
  <button name="two">Button 2</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>

</div>
<div class="container">
  <button name="three">Button 3</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>
</div>

想法是有三个按钮,当您单击其中一个按钮时,只会显示一个div,而其他两个将被隐藏。

这是JavaScript(内联效果很好):

var first_container = document.querySelectorAll(' div:not(:first-child) p');

for (var i = 0; i < first_container.length; i++) {
  first_container[i].style.visibility = 'hidden';
}
var buttons = document.querySelectorAll('button');

for (var i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener('click', clickHandler);
}

function clickHandler(e) {

  e.preventDefault();

  var text = document.querySelectorAll('p');

  for (var i = 0; i < text.length; i++) {

      if (text[i] === event.target.nextElementSibling) {
          text[i].style.visibility = 'visible';

      } else {
          text[i].style.visibility = 'hidden';
      }
  }
}
jfriend00

当您将脚本放入外部文件中,然后从中加载该外部脚本时<head>,它会在DOM准备就绪之前加载。这意味着,如果您的脚本像尝试使用一样尝试引用页面中的document.querySelectorAll()元素,那么这些元素将不存在。

解决该问题的最简单方法是仅移动script标签:

<script type="text/javascript" src="menu.js"></script>

在之前</body>然后,在脚本运行如下之前,将解析页面的所有元素并在DOM中进行解析:

<!DOCTYPE html>

<html>
  <head>
    <title>Test</title>
  </head>
 <body>
<div class="container">
  <button name="one">Button 1</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>

</div>
<div class="container">
  <button name="two">Button 2</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>

</div>
<div class="container">
  <button name="three">Button 3</button>
  <p>
    Lorem ipsum dolor sit amet
  </p>
</div>
<script type="text/javascript" src="menu.js"></script>
</body>
</html>

或者,您可以使用一个脚本,该脚本将在DOM准备就绪时通知您,然后可以调用您的代码。

如果您希望将代码保留在本节中或将其放置在本节中,以便可以将代码放置在任何地方,请参见此参考资料和获得高度评价的答案,以获取纯Java脚本和跨浏览器的等待方式,直到DOM准备就绪为止<head>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我把它放在服务器上时 JavaScript 不起作用

来自分类Dev

当我获取bash脚本时,$ 0不起作用

来自分类Dev

将JavaScript脚本附加到头部不起作用

来自分类Dev

当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

来自分类Dev

Facebook PHP SDK-当我将其放在函数中时,它不起作用

来自分类Dev

Git 命令在 jenkins 管道中不起作用 - 但是当我在本地运行它时它起作用

来自分类Dev

当我尝试执行postcodeanywhere脚本时,自动完成脚本不起作用

来自分类Dev

为什么当我放置偶数个元素时我的程序不起作用

来自分类Dev

Gnuplot-脚本内部错误,但是当我正常编写它时,它可以工作,但是脚本不起作用

来自分类Dev

JavaScript:当我尝试使用 DOM 时,我的 for 循环似乎不起作用

来自分类Dev

如果我将按钮放在框元素下方,则切换按钮不起作用

来自分类Dev

当我添加SQL脚本时Spring Boot不起作用

来自分类Dev

当我使用JQuery加载页面时,表单的提交不起作用

来自分类Dev

当我们将复选框放在可单击的列中时,复选框单击不起作用

来自分类Dev

当我运行 vbs bot 时它不起作用,因为它无法创建对象那么如何解决它?

来自分类Dev

我是node js的新手,当我回调数据时,它表明回调函数不起作用

来自分类Dev

RecyclerView onClick()不起作用,而是仅当我单击单个元素时才响应

来自分类Dev

当我在浏览器中直接输入 URL 时,重写规则不起作用

来自分类Dev

Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

来自分类Dev

就像当我使用“?”时查询不起作用 字符

来自分类Dev

当我使用updatePanel时,maintainScrollPositionOnPostBack不起作用

来自分类Dev

当我尝试追加时,FormData不起作用

来自分类Dev

当我添加更多列时,tablesorter不起作用

来自分类Dev

当我单击文本时,OnClickListener不起作用

来自分类Dev

就像当我使用“?”时查询不起作用 特点

来自分类Dev

当我按下按钮时,CheckBox不起作用

来自分类Dev

当我使用updatePanel时,maintainScrollPositionOnPostBack不起作用

来自分类Dev

当我尝试单击按钮时,它不起作用

来自分类Dev

当我尝试存储变量时不起作用?

Related 相关文章

  1. 1

    当我把它放在服务器上时 JavaScript 不起作用

  2. 2

    当我获取bash脚本时,$ 0不起作用

  3. 3

    将JavaScript脚本附加到头部不起作用

  4. 4

    当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

  5. 5

    Facebook PHP SDK-当我将其放在函数中时,它不起作用

  6. 6

    Git 命令在 jenkins 管道中不起作用 - 但是当我在本地运行它时它起作用

  7. 7

    当我尝试执行postcodeanywhere脚本时,自动完成脚本不起作用

  8. 8

    为什么当我放置偶数个元素时我的程序不起作用

  9. 9

    Gnuplot-脚本内部错误,但是当我正常编写它时,它可以工作,但是脚本不起作用

  10. 10

    JavaScript:当我尝试使用 DOM 时,我的 for 循环似乎不起作用

  11. 11

    如果我将按钮放在框元素下方,则切换按钮不起作用

  12. 12

    当我添加SQL脚本时Spring Boot不起作用

  13. 13

    当我使用JQuery加载页面时,表单的提交不起作用

  14. 14

    当我们将复选框放在可单击的列中时,复选框单击不起作用

  15. 15

    当我运行 vbs bot 时它不起作用,因为它无法创建对象那么如何解决它?

  16. 16

    我是node js的新手,当我回调数据时,它表明回调函数不起作用

  17. 17

    RecyclerView onClick()不起作用,而是仅当我单击单个元素时才响应

  18. 18

    当我在浏览器中直接输入 URL 时,重写规则不起作用

  19. 19

    Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

  20. 20

    就像当我使用“?”时查询不起作用 字符

  21. 21

    当我使用updatePanel时,maintainScrollPositionOnPostBack不起作用

  22. 22

    当我尝试追加时,FormData不起作用

  23. 23

    当我添加更多列时,tablesorter不起作用

  24. 24

    当我单击文本时,OnClickListener不起作用

  25. 25

    就像当我使用“?”时查询不起作用 特点

  26. 26

    当我按下按钮时,CheckBox不起作用

  27. 27

    当我使用updatePanel时,maintainScrollPositionOnPostBack不起作用

  28. 28

    当我尝试单击按钮时,它不起作用

  29. 29

    当我尝试存储变量时不起作用?

热门标签

归档