1

有没有办法使以下 JavaScript if..else 条件变短,而不是if() else()两次编写函数,有什么方法可以编写if(x,y = ""){} else{}或类似的方法使其变短?

$(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"); 
        }
    });
});
4

5 回答 5

7

使用“或”语法 ( ||)

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

这样,如果xxx是一个空字符串或者yyy是一个空字符串,它会提示“好”。如果两者都不为空,则会提示“bad”

于 2013-08-01T10:00:47.473 回答
5

不,您不能写这样的条件,而是可以将其写为

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

或者

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

这里,||是 OR 运算符和&&是 AND 运算符,区别在于如果满足 1 个条件,第一个将返回 true,如果两个条件都满足,则第二个将返回 true。

如果您正在寻找简写语法,可以使用三元运算符

于 2013-08-01T10:00:27.877 回答
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");
    });
});

演示

于 2013-08-01T10:01:06.613 回答
0

你可以这样写

xxx=="" && xxy =="" ? alert("good") : alert("bad")
于 2013-08-01T10:02:59.617 回答
0
    if(xxx=="" && xxy == ""){
alert('good');
}else if(xxx!="" || xxy != ""){
alert('bad');}
于 2013-08-01T10:00:46.043 回答