web-dev-qa-db-fra.com

Comment écrire un élément juste après un autre avec javascript?

J'ai besoin d'ajouter un élément onclick juste après un autre (une zone de texte).

Comment je fais ça?

34
DiegoP.

Mise à jour : Cette question peut ne pas répondre correctement à la question mais elle a été sélectionnée comme la bonne réponse. J'ajoute donc la bonne réponse ici car la plupart des gens ne défilent pas et l'auteur original n'a pas accédé à Stackoverflow depuis de nombreuses années maintenant.

Bonne réponse de @ RobG

var div = document.getElementById( 'div' );
var newText = document.createElement( 'textarea' ); // create new textarea
div.parentNode.insertBefore( newText, div.nextSibling );

Vieille réponse non pertinente:

Vous pouvez utiliser la méthode appendChild pour ajouter un nouvel élément

HTML

<div id='div'>
  <textarea></textarea>
</div>

Javascript

var div = document.getElementById('div');

var newText = document.createElement('textarea'); // create new textarea

div.appendChild(newText); // add it to the div

HTML résultant

<div id='div'>
  <textarea></textarea>
  <textarea></textarea>
</div>
8
Ibu

La réponse acceptée fonctionnera dans ce cas spécifique, mais pour insérer un élément après l'autre de manière plus générale, voici ce qui fait le travail:

someElement.parentNode.insertBefore(newElement, someElement.nextSibling);

newElement est l'élément à insérer et someElement est l'élément qu'il doit être inséré après.

W3C insertBefore méthode de Node interface

124
RobG

La méthode outerHTML fait aussi l'affaire:

allAloneElement.outerHTML+='<p>I am the new element</p>'
8
user3711851