简体   繁体   English

功能不起作用

[英]function doesn't work

I need a little help with this function: 我需要一些有关此功能的帮助:

function  passar() {  
    var fotos1 = document.getElementById("foto1");
    var fotos2 = document.getElementById("foto2");
    var fotos3 = document.getElementById("foto3");

    if ( fotos1.style.display = "block" ) {   
        fotos1.style.display = "none";  
        fotos2.style.display = "block";  
    } else if ( fotos2.style.display = "block" ) {  
        fotos2.style.display = "none";  
    }  
} 

It was supposed to hide "fotos 2" when the first condition is changed but it didn't work, someone knows why? 本来应该在第一个条件发生更改时隐藏“ fotos 2”,但它没有用,有人知道为什么吗?

= for assignment =分配

== for comparison ==用于比较

=== for strict comparison ===用于严格比较

if (fotos1.style.display === "block") {   
fotos1.style.display = "none";  
fotos2.style.display = "block";  
 } else if (fotos1.style.display === "none") {  
 fotos2.style.display = "none";    
  }  
} 

Your conditional statement is doing an assignment rather than a comparison: 您的条件语句正在执行分配而不是比较:

if (fotos1.style.display === "block") {   
    fotos1.style.display = "none";  
    fotos2.style.display = "block";  
} else if (fotos1.style.display === "none") {  
    fotos2.style.display = "block";    
}

Also, it is recommended to use strict comparison using === over the weak comparison == . 另外,建议在弱比较==使用===进行严格比较。 You get the added benefit of the comparison also being roughly 4X faster in some browsers. 在某些浏览器中,您还可以从比较中获得大约4倍的比较速度,从而获得比较的额外好处。

You should be using a comparison operator which is double equals in this case: 在这种情况下,您应该使用一个等于两个的比较运算符:

if (fotos1.style.display == "block") {

Instead you are using a single equals which is an assignment parameter: 取而代之的是,您使用的是一个等于值的赋值参数:

if (fotos1.style.display = "block") {

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM