Метад insertBefore
Метад insertBefore
дазваляе ўставіць
элемент перад іншым элементам. Найчасцей
выкарыстоўваецца пасля стварэння элемента з дапамогай
createElement
.
Метад ужываецца да бацькі таго элемента,
перад якім адбудзецца ўстаўка.
Сінтаксіс
бацька.insertBefore(элемент, перад кім уставіць);
Прыклад
Створам абзац і змясцім яго перад другім абзацам:
<div id="parent">
<p>elem 1</p>
<p id="before">elem 2</p>
<p>elem 3</p>
</div>
let parent = document.querySelector('#parent');
let before = document.querySelector('#before');
let p = document.createElement('p');
p.textContent = '!';
parent.insertBefore(p, before);
Вынік выканання кода:
<div id="parent">
<p>elem 1</p>
<p>!</p>
<p>elem 2</p>
<p>elem 3</p>
</div>
Прыклад
Дадамо абзац у пачатак элемента #parent
.
Для гэтага ўставім наш абзац перад першым
нашчадкам #parent
. Гэтага нашчадка можна
знайсці з дапамогай firstElementChild
:
<div id="parent">
<p>elem 1</p>
<p>elem 2</p>
</div>
let parent = document.querySelector('#parent');
let p = document.createElement('p');
p.textContent = '!';
parent.insertBefore(p, parent.firstElementChild);
Вынік выканання кода:
<div id="parent">
<p>!</p>
<p>elem 1</p>
<p>elem 2</p>
</div>
Прыклад
Пры перадачы другім параметрам null
метад
insertBefore
дзейнічае як appendChild
.
У той жа час, калі ў элеменце няма даччыных
элементаў, firstElementChild
вяртае
null
. Такім чынам, дадаваць у пачатак элемента
можна нават тады, калі ў ім няма даччыных
элементаў:
<div id="parent"></div>
let parent = document.querySelector('#parent');
let p = document.createElement('p');
p.textContent = '!';
parent.insertBefore(p, parent.firstChild);
Вынік выканання кода:
<div id="parent">
<p>!</p>
</div>
Глядзіце таксама
-
метад
prepend
,
які ўстаўляе элементы ў пачатак -
метад
appendChild
,
які ўстаўляе элементы ў канец бацькі -
метад
insertAdjacentElement
,
які ўстаўляе элемент у зададзенае месца -
метад
insertAdjacentHTML
,
які ўстаўляе тэгі ў зададзенае месца