В этом руководстве вы узнаете, как использовать метод JavaScript removeChild()
для удаления дочернего узла из родительского узла.
Чтобы удалить дочерний элемент узла, используйте метод removeChild()
:
let childNode = parentNode.removeChild(childNode);
childNode
— это дочерний узел parentNode
, который вы хотите удалить. Если childNode
не является дочерним узлом parentNode
, метод выдает исключение.
Метод removeChild()
возвращает удаленный дочерний узел из дерева DOM, но сохраняет его в памяти, которую можно использовать позже.
Если вы не хотите оставлять удаленный дочерний узел в памяти, используйте следующий синтаксис:
parentNode.removeChild(childNode);
Дочерний узел будет находиться в памяти до тех пор, пока он не будет уничтожен сборщиком мусора JavaScript.
Пример
Предположим, у вас есть следующий список элементов:
<ul id="menu"> <li>Home</li> <li>Products</li> <li>About Us</li> </ul>
В следующем примере метод removeChild()
используется для удаления последнего элемента списка:
let menu = document.getElementById('menu'); menu.removeChild(menu.lastElementChild);
Как это работает:
- Во-первых, получите элемент
ul
сmenu
id, используя методgetElementById()
. - Затем удалите последний элемент элемента
ul
с помощьюremoveChild()
. Свойствоmenu.lastElementChild
возвращает последний дочерний элементmenu
.
Соединим все это вместе.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaScript removeChild()</title> </head> <body> <ul id="menu"> <li>Home</li> <li>Products</li> <li>About Us</li> </ul> <script> let menu = document.getElementById('menu'); menu.removeChild(menu.lastElementChild); </script> </body> </html>
Удаление всех дочерних узлов элемента
Чтобы удалить все дочерние узлы элемента, выполните следующие действия:
- Получите первый узел элемента, используя свойство
firstChild
. - Повторно удалите дочерний узел до тех пор, пока не останется дочерних узлов.
Следующий код показывает, как удалить все элементы списка элемента menu
:
let menu = document.getElementById('menu'); while(menu.firstChild) { menu.removeChild(menu.firstChild); }
Вы можете удалить все дочерние узлы элемента, установив свойство innerHTML
родительского узла пустым:
let menu = document.getElementById('menu'); menu.innerHTML = '';
Заключение
- Используйте
parentNode.removeChild()
, чтобы удалить дочерний узел родительского узла. parentNode.removeChild()
генерирует исключение, если дочерний узел не может быть найден в родительском узле.