[英]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.