我有一个处理复选框的函数。我现在正在做的事情是,我想检查 3 个变量是否彼此相等(true 或 false;这并不重要),如果相等则执行命令。我尝试了几种不同的方向,但无法使其发挥作用。
function dump() {
var u = document.getElementById("dump").checked;
var x = document.getElementById("tractor").checked;
var y = document.getElementById("sweeper").checked;
var e = document.getElementsByClassName('dump');
var a = document.getElementsByClassName('tractor');
var b = document.getElementsByClassName('sweeper');
for (var i = 0; i < e.length; i++) {
/*This is the section*/
if (u==x && x==y)
e[i].style.display = "block";
a[i].style.display = "block";
b[i].style.display = "block";
/*End*/
if (u)
e[i].style.display = "block";
else
e[i].style.display = 'none';
if (x)
a[i].style.display = "block";
else
a[i].style.display = 'none';
if (y)
b[i].style.display = "block";
else
b[i].style.display = "none";
}
}
已解决
我真正的问题是我需要将该语句移至函数末尾。为了便于测量,我还添加了括号。
function dump() {
var u = document.getElementById("dump").checked;
var x = document.getElementById("tractor").checked;
var y = document.getElementById("sweeper").checked;
var e = document.getElementsByClassName('dump');
var a = document.getElementsByClassName('tractor');
var b = document.getElementsByClassName('sweeper');
for (var i = 0; i < e.length; i++) {
if (u){
e[i].style.display = "block";
}
else{
e[i].style.display = 'none';
}
if (x){
a[i].style.display = "block";
}
else{
a[i].style.display = 'none';
}
if (y){
b[i].style.display = "block";
}
else{
b[i].style.display = "none";
}
if (u==x && x==y){
e[i].style.display = "block";
a[i].style.display = "block";
b[i].style.display = "block";
}
}
}
最佳答案
你需要大括号:
if (u==x && x==y) {
e[i].style.display = "block";
a[i].style.display = "block";
b[i].style.display = "block";
}
否则,if
仅附加到下一个语句,
e[i].style.display = "block";
忽略缩进。
关于javascript - 检查 Javascript 中多个变量是 true 还是 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24902641/