if else语句层次结构JS

时间:2013-11-25 18:29:56

标签: javascript class if-statement hierarchy

我有3种可能应用于元素的类组合,为了我们的目的,这些类是

".a" and ".b"

有时可以应用.a.b,有时只应用.a,有时根本不应用任何类。我想编写一个if语句来捕获所有3种可能的组合,例如

if (node.hasClass("a")){
//do something
}else if(node.hasClass("a") && node.hasClass("b")){
//do something different
}else{
//some something else all together
};

但是现在这个if语句没有用,有什么建议吗?

谢谢!

** hasClass();是YUI3方法

3 个答案:

答案 0 :(得分:0)

您的原始代码不起作用,因为如果节点具有类a(无论它是否也具有类b),它将进入第一个块,并且永远不会检查另一个条件。

请改为尝试:

if (node.hasClass("a")) {
    if(node.hasClass("b")) {
        // has a and b
    } else {
        // has a only
    }
} else {
    // does not have a
};

答案 1 :(得分:0)

if(node.hasClass("a") && node.hasClass("b"))
{
    //both .a and .b
}
else if(node.hasClass("a"))
{
    //only .a
}
else if(node.hasClass("b"))
{
    //only .b
}
else
{
    //neither
}

答案 2 :(得分:0)

你总是需要先“抓住”最严格的案件。所以将你的逻辑改为:

if (node.hasClass("a") && node.hasClass("b")){
//do something
}else if(node.hasClass("a")){
//do something different
}else{
//some something else all together
};