2013-10-21 3 views
4

다음의 간단한 HTML에서 은 class1을 가진 모든 요소를 ​​갖지만 class2는 포함하지 않기를 원합니다. 우리는 모든 요소를 ​​얻을 수 getElementsByClassName('class1')을 사용하고 가능 checking if a certain class exists에 의해 요소를 제거함으로써하나의 클래스로 하나의 클래스로 요소를 가져오고 반복하지 않고 나머지 요소를 얻으십시오.

<li class="class1 class2"></li> 
<li class="class1 class3"></li> 
<li class="class1 class4"></li> 

.

반복하지 않고 더 좋은 방법이 있습니까?

여러 클래스가있는 요소를 가져 오는 것에 대해 this interesting post 발견했습니다. 다음과 같이 묻습니다. document.getElementsByClassName("class1 !class2")?

P .: 나는 jQuery를 사용하고 싶지 않습니다.

답변

8

당신이 사용 괜찮다면 점점 compatible.querySelectorAll() 단지로 가능합니다 :

var getClassOne = document.querySelectorAll('.class1:not(.class2)'); 

바이올린 : http://jsfiddle.net/5tSGv/52/

그것을하지 않고 있지만, 어떻게 든 클래스 명 을 반복해야 할 것

+0

MackieeE에 감사드립니다.하지만 질문은 "게시자가 게시 한 것 이외의 다른 방법이 있습니까?"(whi 내가 내 질문에 설명 된 채널) – mavrosxristoforos

+0

나는 본다! 질문을 너무 빨리 감추고 사과드립니다. - querySelectorAll()으로 바이올린을 추가했습니다. – MackieeE

+1

감사합니다 MackieeE. 나는 그것을 전혀 사용하지 않아도된다. 나는 더 많은 제안을보고 싶지만, 그들이 오지 않으면 나는 당신의 대답을 받아 들일 것입니다. – mavrosxristoforos