La méthode insertAdjacentHTML

Astucejavascript

Publié par (membre du staff)
le , mis à jour le (28054 lectures)

javascript dom innerhtml insertadjacenthtml

La méthode insertAdjacentHTML est peu connue en JavaScript et pourtant bien utile. Si vous avez déjà souhaité manipuler dynamiquement du contenu HTML dans une page ou application web, vous avez certainement déjà utilisé les méthodes createNode() + appendChild() ou la propriété innerHTML, qui donne un accès direct au contenu d'un élément :

Exemple de code avec innerHTML

<div id="mondiv"></div>
<script>
document.getElementById('mondiv').innerHTML = 'Et hop ! <img src="saucisse.png" alt="">';
</script>

Mais cela remplace directement tout le contenu de l'élément (à moins de le récupérer avant par une pirouette).

Pour insérer du contenu en choisissant l'emplacement exact, on pourra plutot se servir de insertAdjacentHTML() qui va prendre en paramètres :

  • la position d'insertion avec les mots clés :
beforeBegin
avant l'élément (équivalent à `before` en jQuery)
afterBegin
à l'intérieur au début (équivalent à `prepend` en jQuery)
beforeEnd
à l'intérieur à la fin (équivalent à `append` en jQuery)
afterEnd
après l'élément (équivalent à `after` en jQuery)
  • le code HTML à insérer

Exemple de code avec insertAjdacentHTML

<ul id="maliste">
  <li>Printemps</li>
  <li>Été</li>
  <li>Automne</li>
</ul>
<script>
document.getElementById('maliste').insertAdjacentHTML('beforeEnd','<li>Hiver</li>');
</script>

Rodolphe fait partie de l'agence Alsacréations, contactez-nous pour des projets de qualité !

Commentaires

Super !!

Effectivement c'est utile, et dans bien des cas de figure c'est qu'innerHTML ou appendChild ! Je garde en stock, merci pour l'astuce :)

:') .. Et pourtant j'avais cherché... Des heures durant ... Comment éviter ces infâmes pirouettes propres au DOM, qui dégueulassent invariablement le code.

Lisible, propre.. : Merci !