Javascript崩溃HTML -我的代码不工作,你能看到任何错误吗?

Javascript Collapse HTML - My code isn't working, can you see any errors?

本文关键字:任何 错误 HTML 崩溃 我的 代码 工作 Javascript      更新时间:2023-09-26

好的,这是我的代码,试着让它,当一个按钮点击onclick="contactChange"等,它会使显示块不可见:

<script type="text/javascript">
    window.onload; {
        var contactState = 0;
    }
        function contactChange() {
          if (contactState = 0) {
           var contact = document.getElementbyId("main");
           contact.style.display="none";
           contactState = 1;
          }  
          else if (contactState = 1) {
              var contact = document.getElementbyId("main");
              contact.style.display="block";
              contactState = 0;
          }
    }
</script>

我的代码似乎不工作,是否有任何错误,做我想做的事?

您的代码有一些严重的问题。

  • 首先,你的前几行根本没有意义。
  • 下一步,if (contactState = 0)contactState设置为0。您需要==,其中比较 contactState0

我会这样做:

  function contactChange() {
    var contact = document.getElementbyId("main");
    if (contact.style.display == "none") {
      contact.style.display = "block";
    } else {
      contact.style.display = "none";
    }
  }

或者如果你想更花哨一点:

  function contactChange() {
    var contact = document.getElementbyId("main");
    contact.style.display = (contact.style.display == "none") ? "block" : "none";
  }

你在分配,而不是比较。

同样,你不想让翻转条件中的状态吗?

如果你还不知道,你应该学习如何在你使用的任何浏览器上查看你的JavaScript控制台,并检查它是否在那里记录错误。

你不希望contactState = X出现在你的if语句中。你想要contactState == X

不确定window.onload在你的代码开始做什么。

查看您的代码:

> window.onload;

是对window对象的onload属性的引用。不管这个值是什么,它都不会被赋值给任何东西,所以它会被忽略(或多或少)。

> {    
   var contactState = 0;

}

{}字符包围了一个块语句,它通常与以下语句一起使用:ifforelse等等。就其本身而言,它不做任何事情,因此可以将其从上面移除而不会产生任何影响。该代码与:

相同
var contactState = 0;

声明了变量contactState,当代码执行时,它被分配一个数字0(零)的值。

Blender对未调用的函数有一些注释。考虑到它正在处理DOM元素,您可能希望它在load事件发生时运行,因此您可能打算将该函数分配给窗口。onload 属性:

window.onload = contactChange;

现在,函数将在加载事件发生时被调用,前提是在执行这行代码时它还没有发生。