내가 요소에 적용 할 수있는 3 개 가능한 클래스 조합이있는 경우, 우리의 이익을 위해 수업이없는 때때로else 문 계층 JS
".a" and ".b"
때로는
모두 .a
및 .b
을 적용 할 수 또는 때로는 .a
하고 있습니다 수업은 전혀 없습니다. 예를 들어, 가능한 조합을 모두 잡는 if 문을 작성하고 싶습니다.
지금이 if 문이 작동하지 않습니다. 제안이 없습니까?
감사합니다.
** hasClass();
내가 요소에 적용 할 수있는 3 개 가능한 클래스 조합이있는 경우, 우리의 이익을 위해 수업이없는 때때로else 문 계층 JS
".a" and ".b"
때로는
모두 .a
및 .b
을 적용 할 수 또는 때로는 .a
하고 있습니다 수업은 전혀 없습니다. 예를 들어, 가능한 조합을 모두 잡는 if 문을 작성하고 싶습니다.
지금이 if 문이 작동하지 않습니다. 제안이 없습니까?
감사합니다.
** hasClass();
당신은 항상 처음에 "캐치"가장 제한적인 경우에 필요합니다. 따라서 논리를 다음으로 변경하십시오.
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
}
주문을 다른 것으로 전환하십시오. 첫 번째 if 조건에 항상 만족할 것이기 때문에 결코 2 등분 할 수 없습니다. 조건의 순서를 전환하십시오. ' if (node.hasClass ("a") && node.hasClass ("b")) { } else if (node.hasClass ("a")) { } else {} ' –