2013-10-21 109 views
4

在下面的簡單HTML中,我想獲得具有class1但不具有class2的所有元素獲取具有一個類而不是另一個元素的元素

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

使用getElementsByClassName('class1')我們可以得到的所有元素,然後可能通過checking if a certain class exists刪除元素。

有沒有更好的方式來做到這一點,而不是迭代?

我發現this interesting post關於獲取多個類的元素,所以我敢問:有沒有這樣的事情:document.getElementsByClassName("class1 !class2")

P.S .:我不想使用jQuery。

回答

8

如果你不介意使用日益compatible.querySelectorAll()它可能只有:

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

小提琴http://jsfiddle.net/5tSGv/52/

雖然沒有它,你必須遍歷的className 莫名其妙

+0

謝謝MackieeE,但問題是「有沒有更好的方法來做到這一點?」,除了你發佈的內容(whi我在我的問題中描述) – mavrosxristoforos

+0

我明白了!爲快速瀏覽問題而抱歉 - 通過querySelectorAll()增加了一個小提琴。 – MackieeE

+1

感謝MackieeE。我不介意使用它。儘管如此,我希望看到更多的建議,但如果他們沒有提出,我會接受你的答案。 – mavrosxristoforos

相關問題