2013-11-25 3 views
0

내가 요소에 적용 할 수있는 3 개 가능한 클래스 조합이있는 경우, 우리의 이익을 위해 수업이없는 때때로else 문 계층 JS

".a" and ".b" 
때로는

모두 .a.b을 적용 할 수 또는 때로는 .a하고 있습니다 수업은 전혀 없습니다. 예를 들어, 가능한 조합을 모두 잡는 if 문을 작성하고 싶습니다.

지금이 if 문이 작동하지 않습니다. 제안이 없습니까?

감사합니다.

** hasClass();

+0

주문을 다른 것으로 전환하십시오. 첫 번째 if 조건에 항상 만족할 것이기 때문에 결코 2 등분 할 수 없습니다. 조건의 순서를 전환하십시오. ' if (node.hasClass ("a") && node.hasClass ("b")) { } else if (node.hasClass ("a")) { } else {} ' –

답변

0

당신은 항상 처음에 "캐치"가장 제한적인 경우에 필요합니다. 따라서 논리를 다음으로 변경하십시오.

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

노드에 a 클래스가 있거나 (b 클래스가 있는지 여부에 관계없이) 노드가 첫 번째 블록을 입력하고 다른 조건을 확인하지 않으므로 원래 코드가 작동하지 않습니다.

이 대신보십시오 :

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