检查Javascript中的多个变量是否为true或false
我有一个处理复选框的函数。我现在有一件事要做,我想检查3个变量是否彼此相等(真或假;没关系),如果是这样的话,执行一个命令。我尝试了一些不同的方向,但就是无法让它工作检查Javascript中的多个变量是否为true或false,javascript,if-statement,conditional,Javascript,If Statement,Conditional,我有一个处理复选框的函数。我现在有一件事要做,我想检查3个变量是否彼此相等(真或假;没关系),如果是这样的话,执行一个命令。我尝试了一些不同的方向,但就是无法让它工作 function dump() { var u = document.getElementById("dump").checked; var x = document.getElementById("tractor").checked; var y = document.getElementById("sw
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";
}
}
函数转储(){
var u=document.getElementById(“转储”)。已选中;
var x=document.getElementById(“拖拉机”)。已选中;
var y=document.getElementById(“清扫器”)。已选中;
var e=document.getElementsByClassName('dump');
var a=document.getElementsByClassName('tractor');
var b=document.getElementsByClassName('sweeper');
对于(变量i=0;i
解决
我真正的问题是我需要将该语句移到函数的末尾。我还添加了括号,以便更好地测量
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";
}
}
}
函数转储(){
var u=document.getElementById(“转储”)。已选中;
var x=document.getElementById(“拖拉机”)。已选中;
var y=document.getElementById(“清扫器”)。已选中;
var e=document.getElementsByClassName('dump');
var a=document.getElementsByClassName('tractor');
var b=document.getElementsByClassName('sweeper');
对于(变量i=0;i
您需要大括号:
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";
缩进被忽略。您需要大括号:
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";
缩进被忽略。我认为问题在于缩进,而不是大括号:
/*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语句保护“e”语句,而a&b将始终执行
但无论它做什么,都可能会被以下基于u、x和y的单个值的if语句块所改变。我认为问题在于你有缩进,而不是大括号:
/*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语句保护“e”语句,而a&b将始终执行
但是,无论它做什么,都可能会被以下基于u、x和y的单个值的if语句块所改变。如果没有大括号,您的代码将有以下行为
if(u==x)
statement //if condition applies to only first statement
statement //will act as assignments
statement //
因此,您应该在此处使用大括号
if(ui==x && x==y){
e[i].style.display = "block";
a[i].style.display = "block";
b[i].style.display = "block";
}
如果没有大括号,代码将有以下行为
if(u==x)
statement //if condition applies to only first statement
statement //will act as assignments
statement //
因此,您应该在此处使用大括号
if(ui==x && x==y){
e[i].style.display = "block";
a[i].style.display = "block";
b[i].style.display = "block";
}
你犯了什么错误?如果s需要使用大括号{}下次你提问时,请描述你的代码产生的行为以及它打算产生的行为。“不能让它工作”是含糊不清的,这使得人们更难弄清楚到底发生了什么事。
e[i].style.display=u?“块”:“无”代码>所说的“不能让它工作”我的意思是一切都破碎了。我正在使用JSFIDLE来更好地可视化我的问题。基本上,如果该行工作正常,它会将一些容器切换到“display:block;”。因此,容器没有显示“its brokey”。您得到了什么错误?如果
s需要使用大括号{}下次你提问时,请描述你的代码产生的行为以及它打算产生的行为。“不能让它工作”是含糊不清的,这使得人们更难弄清楚到底发生了什么事。e[i].style.display=u?“块”:“无”代码>所说的“不能让它工作”我的意思是一切都破碎了。我正在使用JSFIDLE来更好地可视化我的问题。基本上,如果该行工作正常,它会将一些容器切换到“display:block;”。因此,集装箱上没有显示“其破碎”。