366 votes

Comment définir l'élément DOM comme premier enfant ?

J'ai l'élément E et j'y ajoute quelques éléments. Tout d'un coup, je découvre que le prochain élément devrait être le premier enfant de E. Quel est le truc, comment le faire ? La méthode Unshift ne fonctionne pas car E est un objet, pas un tableau.

Un long chemin serait d'itérer à travers les enfants de E et de sedéplacer' em key++, mais je suis sûr qu'il y a un chemin plus joli.

665voto

nemisj Points 2966
var eElement; // some E DOM instance
var newFirstElement; //element which should be first in E

eElement.insertBefore(newFirstElement, eElement.firstChild);

13voto

yorg Points 514

Vous pouvez l'implémenter directement sur tous les éléments html de votre fenêtre.
Comme ceci :

HTMLElement.prototype.appendFirst = function(childNode) {
    if (this.firstChild) {
        this.insertBefore(childNode, this.firstChild);
    }
    else {
        this.appendChild(childNode);
    }
};

8voto

Joseph Dykstra Points 93

Réponse acceptée refacturée dans une fonction :

function prependChild(parentEle, newFirstChildEle) {
    parentEle.insertBefore(newFirstChildEle, parentEle.firstChild)
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X