Vložte prvek za jiný prvek DOM pomocí JavaScriptu

V dřívějších článcích jsme se zabývali tím, jak jej vytvořit, element a vložit jej před jiný element v DOM pomocí vanilkového JavaScriptu.

V tomto krátkém článku se dozvíte o různých způsobech vložení prvku za další v DOM s JavaScriptem.

insertBefore() Metoda, kterou jsme se naučili dříve přidat prvek, lze také použít k vložení prvku za uzel HTML. Pro tento účel musíme použít prvek nextSibling vlastnost, která vrací odkaz na okamžitý uzel na stejné úrovni stromu.

Zde je příklad:

// create a new element
const elem = document.createElement('p');

// add text
elem.innerText = 'I am a software engineer.';

// grab target element reference
const target = document.querySelector('#intro');

// insert the element after target element
target.parentNode.insertBefore(elem, target.nextSibling);

insertBefore() metoda funguje ve všech moderních i starých prohlížečích včetně Internet Exploreru 6 a vyšších.

Pokud chcete vložit řetězec HTML po určitém prvku v DOM použijte insertAdjacentHTML() místo toho, jako níže:

// insert HTML string after target element
target.insertAdjacentHTML('afterend', '<p>I am a software engineer.</p>');

insertAdjacentHTML() metoda automaticky analyzuje daný řetězec jako HTML a výsledné prvky vloží do stromu DOM na danou pozici. Podívejte se na tuto příručku, kde se o ní dozvíte více.

ES6 after() Metoda

ES6 představil novou metodu nazvanou after() pro vložení prvku hned za existující uzel v DOM. Stačí zavolat tuto metodu na prvek, za který chcete prvek vložit, a předat nový prvek jako argument:

// insert the element after target element
target.after(elem);

Stejně jako before() metoda, after() funguje pouze v moderních prohlížečích, konkrétně v Chrome, Safari, Firefox a Opera. V současné době Internet Explorer tuto metodu nepodporuje. Můžete však použít polyfill pro zvýšení podpory až na IE 9 a vyšší.

Další informace: Jak vložit prvek do DOM v JavaScriptu