web-dev-qa-db-fra.com

Comment sélectionner un élément qui n'a pas de classe spécifique

Je me demande comment sélectionner un élément qui n'a pas de classe spécifique utilisant JavaScript, pas jQuery.

Par exemple, j'ai cette liste:

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

et je sélectionne la tâche complétée par:

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

Mais alors je ne suis pas sûr de savoir comment sélectionner l'élément de liste qui n'a pas ces classes.

63
Jaeeun Lee

Ceci sélectionne le deuxième élément LI.

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

ou

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

Exemple:

// select li which doesn't have a 'class' attribute...
console.log(document.querySelector("li:not([class])"))

// select li which doesn't have a '.completed' and a '.selected' class...
console.log(document.querySelector("li:not(.completed):not(.selected)"))
 <ul id="tasks">
    <li class="completed selected">One Task</li>
    <li>Two Task</li>
  </ul>
109
Nick Grealy

Pour sélectionner le <li> qui n’a pas completed ni selected classe:

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

Violon

http://jsfiddle.net/Z8djF/

16
BeNdErR

Vous pouvez essayer le sélecteur :not()

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

http://jsfiddle.net/UM3j5/

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

Essayez plutôt d’obtenir un tableau des enfants du parent:

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

Puis boucle/recherche si nécessaire.

1
crunch