如果其他语句层次结构 JS

if else statement hierarchy JS

本文关键字:JS 层次结构 语句 其他 如果      更新时间:2023-10-25

我有 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
};

但是现在这个如果陈述不起作用,有什么建议吗?

谢谢!

** hasClass((; 是一个 YUI3 方法

您始终需要先"捕获"最严格的情况。因此,请将逻辑更改为:

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

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

试试这个:

if (node.hasClass("a")) {
    if(node.hasClass("b")) {
        // has a and b
    } else {
        // has a only
    }
} else {
    // does not have a
};
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
}