结合两个if语句的逻辑

时间:2013-08-01 09:58:03

标签: javascript

有没有办法让以下JavaScript if..else条件简短,而不是写if() else()函数两次有没有办法写if(x,y = ""){} else{}或类似的东西使它更短?< / p>

$(document).ready(function(){
    $("#third").click(function(){
        var xxx = $("#first").val();
        var xxy = $("#second").val();

        if (xxx == "") {
            alert("good"); 
        }
        else {
            alert("bad"); 
        }

        if (xxy == "") {
            alert("good"); 
        }
        else {
            alert("bad"); 
        }
    });
});

5 个答案:

答案 0 :(得分:4)

不,你不能写出这样的条件,而是你可以把它写成

if(xxx == '' || yyy == '') {}

或者

if(xxx == '' && yyy == '') {}

这里,||是OR运算符,&&是AND运算符,如果1条件满足,则第1个将返回true,如果两个条件满足,则第2个将返回true。

如果您正在寻找简短的语法,可以使用ternary operator

答案 1 :(得分:4)

使用“或”语法(||

if(xxx == '' || yyy == '')
{
    alert("good");
}
else
{
    alert("bad");
}

这样,如果xxx是一个空字符串,或者yyy是一个空字符串,它将提示“良好”。如果它们都不为空,它将提醒“坏”

答案 2 :(得分:1)

这个怎么样?

$(document).ready(function() {
    var showResult = function(val) {
        alert(val ? "good" : "bad");
    };

    $("#third").click(function(){

        var xxx = $("#first").val();
        var xxy = $("#second").val();

        showResult(xxx);
        showResult(xxy);
    });
});

如果你想要结合起来,你可以写得更少:

$(document).ready(function() {
    $("#third").click(function(){
        var xxx = $("#first").val();
        var xxy = $("#second").val();

        alert((xxx || xxy) ? "good" : "bad");
    });
});

如果你想要短信代码,我想它可能是这样的:

$(document).ready(function() {
    $("#third").click(function(){
        var elems = $("#first, #second").val();

        alert((elems[0] || elems[1]) ? "good" : "bad");
    });
});

<强> Demo

答案 3 :(得分:0)

    if(xxx=="" && xxy == ""){
alert('good');
}else if(xxx!="" || xxy != ""){
alert('bad');}

答案 4 :(得分:0)

你可以像这样写

xxx=="" && xxy =="" ? alert("good") : alert("bad")