javascript - 检查 Javascript 中多个变量是 true 还是 false

标签 javascript if-statement conditional-statements

我有一个处理复选框的函数。我现在正在做的事情是,我想检查 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/

相关文章:

javascript - 如何更改现有的 NetSuite 表单或如何使用 HTML、Bootstrap 和 JavaScript 编写新表单?

javascript - Node.js 广播两次

python - 包括它将在 python 中的一个 if 语句中检查的两件事

android - 如果用作表达式,'if' 必须同时具有 main 和 'else' 分支

javascript - 文本解析函数中与 Javascript 三元运算符的混淆

mysql - 在mysql的存储过程中使用函数

javascript - 通过表中的 id 选择 tr 的子 td

javascript - 如何在 javascript/jQuery 中设置变量的永久值?

mysql - 按子键分组,但如果不是 1 则显示 0 的新读取

bash - IF 语句与逻辑运算符未按预期工作