0

我需要这个功能的一点帮助:

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";  
    }  
} 

当第一个条件改变但它不起作用时,它应该隐藏“fotos 2”,有人知道为什么吗?

4

3 回答 3

3

=分配

==比较

===进行严格比较

if (fotos1.style.display === "block") {   
fotos1.style.display = "none";  
fotos2.style.display = "block";  
 } else if (fotos1.style.display === "none") {  
 fotos2.style.display = "none";    
  }  
} 
于 2012-05-24T22:21:05.620 回答
1

您的条件语句正在执行分配而不是比较:

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

此外,建议使用===over the weak comparison 进行严格比较==。在某些浏览器中,您还可以从比较中获得额外的好处,大约快 4 倍。

于 2012-05-24T22:21:14.293 回答
0

在这种情况下,您应该使用双等于的比较运算符:

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

相反,您使用的是一个单独的等号,它是一个赋值参数:

if (fotos1.style.display = "block") {
于 2012-05-24T22:21:36.563 回答