Enlever la première enfant en javascript
Je suis en train de supprimer la première li
dans un ol
l'utilisation de DOM removeChild()
. Mais pour quelque raison il ne fonctionne pas.
C'est mon javascript:
document.getElementById('queue').removeChild(
document.getElementById('queue').childNodes[0]
);
Et c'est mon code HTML:
<ol id="queue">
<li>Surprised Kitty (Original)<span class="nodisplay">0Bmhjf0rKe8</span></li></ol>
J'ai essayé d'alerter l' childNodes[0]
, et il retourne [Object Text]
, ce qui semble un peu bizarre, quand j'attendais juste l'objet.
Espère que j'ai été clair.
OriginalL'auteur miestasmia | 2013-01-12
Vous devez vous connecter pour publier un commentaire.
Entre les
<ol id="queue">
et la<li>
tag sont des espaces et des sauts de ligne. Ils constituent un nœud de texte. Le premier enfant de la#queue
élément est donc un nœud de texte.Vous pouvez utiliser le
.enfants
de la propriété au lieu de.childNodes
, il ne considère que les nœuds d'élément, ou itérer sur tous les nœuds enfants jusqu'à ce que vous trouver la premièreli
nœud, comme suggéré par dystroy.Non, il est originaire. Utilisez simplement
document.getElementById('queue').children[0]
Non, il n'est pas.... jQuery a une
.children
méthode, mais ce n'est pas de quoi je parle.Pourriez-vous expliquer?
Expliquer quoi?
OriginalL'auteur Felix Kling
Essayer ce one-liner:
Avec le développement de l'explication:
Le premier élément enfant est un texte avec des sauts de ligne. Avec cette ligne de code, vous obtenez 'li' éléments seulement.
Merci, c'est fait! 🙂 dystroy ont donné une réponse décrivant cette.
Ce que je voulais dire, c'est que les gens sont plus susceptibles d'upvote votre réponse si vous en fournir une explication. Pas seulement un fragment de code.
Point de pris. Merci.
OriginalL'auteur Alex
Nœuds enfants ne sont pas seulement les éléments que vous pensez, mais également les nœuds de texte. Vous pouvez parcourir les nœuds et supprimer le premier
LI
.Démonstration
Noter que ce n'est plus une explication de la solution la plus pratique. Javascript a d'autres itération des solutions pour vous, parmi eux getElementsByTagName, de sorte que vous pouvez le faire :
Démonstration
J'ai édité avec le code.
Pour le dossier, je vois qu'Alex mentionné getElementsByTagName avant mon edit.
OriginalL'auteur Denys Séguret
supprimer toutes les listes figurant en file d'attente:
OriginalL'auteur kennebec