Javascript折叠HTML-我的代码不是';工作不正常,你能看到任何错误吗?

Javascript折叠HTML-我的代码不是';工作不正常,你能看到任何错误吗?,javascript,html,Javascript,Html,好的,这是我的代码,试图使它在用onclick=“contactChange”等单击按钮时,显示块不可见: <script type="text/javascript"> window.onload; { var contactState = 0; } function contactChange() { if (contactState = 0) { var contact = documen

好的,这是我的代码,试图使它在用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>

window.onload;{
var contactState=0;
}
函数contactChange(){
如果(contactState=0){
var contact=document.getElementbyId(“main”);
contact.style.display=“无”;
contactState=1;
}  
否则如果(contactState=1){
var contact=document.getElementbyId(“main”);
contact.style.display=“block”;
contactState=0;
}
}

我的代码似乎不工作,是否有任何错误,正在执行我想执行的操作?

您正在分配,而不是比较


另外,您不想在条件中翻转状态吗?您正在将其设置为与原来相同的值。

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

您不希望在
if
语句中使用
contactState=X
。您需要
contactState==X


不确定
窗口。onload
在代码开始时挂起了什么。

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

  • 首先,你的前几行根本没有意义
  • 接下来,
    if(contactState=0)
    contactState
    设置为
    0
    。您需要
    ==
    ,它将
    联系人状态
    0
    进行比较
以下是我将尝试做的:

  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";
  }
查看您的代码:

> window.onload;
这是对窗口对象的onload属性的引用。无论该值是什么,它都不会指定给任何对象,因此会被忽略(或多或少)

}

{}
字符包含一个块语句,通常与if、for、else等语句一起使用。就其本身而言,它不起任何作用,因此可以从上面删除它,而不会产生任何效果。该代码与以下代码相同:

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

Blender对未调用的函数有一些注释。鉴于它处理的是DOM元素,您可能希望它在加载事件发生时运行,因此您可能想将函数分配给window.onload属性:

window.onload = contactChange;

现在,如果在执行该行代码时尚未发生加载事件,则将在加载事件发生时调用该函数。

谢谢分享!你的问题是什么?OP试图解决一些问题,但方法有缺陷。然而,杰克确实试过了。请尝试用正确的方法回答问题。更不用说
window.onload;{…}
我正在处理的一个例子与这个答案非常相似:我认为
if(contactState=0)
总是
false
,因为
0==false
我也不喜欢
onclick
或其他内联处理程序,但这是目前最不坏的。@DiogoDoreto:对不起,不知道为什么我认为作业总是返回
true
。此外,我还添加了
!el.style.如果初始未设置,则在
中显示
var contactState = 0;
window.onload = contactChange;