2014-02-23 4 views
34

Ich frage mich, wie man ein Element, das keine bestimmte Klasse hat, mit JavaScipt, nicht mit jQuery, auswählt.Wie wählt man ein Element aus, das keine spezifische Klasse hat

Zum Beispiel, ich habe diese Liste:

<ul id="tasks"> 
     <li class="completed selected">One Task</li> 
     <li>Two Task</li> 
    </ul> 

und ich wählen Sie die erledigte Aufgabe durch:

var completeTask = document.querySelector("li.completed.selected"); 

Aber dann bin ich nicht sicher, wie das Listenelement auszuwählen, das nicht der Fall ist habe diese Klassen.

Danke!

Antwort

54

Dies wählt das zweite LI Element aus.

document.querySelector("li:not([class])") 

oder

document.querySelector("li:not(.completed):not(.selected)") 

Beispiel:http://jsfiddle.net/nickg1/T9nEk/

10

Um die <li> auswählen, die nicht completed noch selected Klasse:

document.querySelector("li:not(.completed):not(.selected)"); 

Fiddle

http://jsfiddle.net/Z8djF/

+0

Wie [das Gegenteil tun] (http://stackoverflow.com/q/39822557/2284570): dass ist, wählen Sie alle Elemente aus, die sowohl "abgeschlossen" als auch "ausgewählt" haben. – user2284570

+0

@ user2284570 schreiben Sie einfach beide Klassen ohne Leerzeichen: 'li.completed.selected' -> Dies wird alle' li' Elemente mit 'completed' und' selected' Klasse entsprechen – BeNdErR

8

Sie können

var completeTask = document.querySelector("li:not(.completed):not(.selected)"); 
die :not() Wähler versuchen

http://jsfiddle.net/UM3j5/

1

Versuchen Sie, eine Reihe der Kinder-Eltern bekommen statt:

var completeTask = document.querySelector("#tasks").childNodes; 

Dann Schleife/suchen, um sie nach Bedarf.

0
document.querySelectorAll('[wf-body=details] input:not(.switch):not(.btn)').forEach(function(e){ 
    // do whatever you want. with 'e' as element :P 
}); 
Verwandte Themen