ChildNode#
ChildNode.remove()#
Metoda remove()
usuwa dany węzeł z jego rodzica.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
childNode.remove();
gdzie poszczególne człony oznaczają:
- childNode - węzeł będący obiektem kontekstu, który zostanie usunięty ze swojego rodzica.
Algorytm wywołania metody remove()
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Jeśli rodzicem w obiekcie kontekstu jest wartość
null
, to pomiń kolejne kroki. - Usuń dany obiekt kontekstu z rodzica posiadanego przez obiekt kontekstu.
Warto podkreślić, że węzeł docelowy, na którym wywołujemy metodę remove()
, nie musi mieć rodzica, i w takiej sytuacji nie wykonane zostaną żadne czynności (bez zgłoszenia jakiegokolwiek błędu).
Metoda remove()
, w przeciwieństwie do metody Node.removeChild()
, nie zwraca referencji do usuwanego węzła, ale nie jest to szczególnie istotne, gdyż samo jej wywołanie wymaga uprzedniego dostępu do usuwanego węzła.
Prosty przykład:
<!DOCTYPE html>
<html>
<head>
<script>
// Uruchom po całkowitym załadowaniu dokumentu
window.onload = function(){
var ul1 = document.getElementById("ul1");
var ul2 = document.getElementById("ul2");
// Manipulujemy drzewem po upływie 3 s
setTimeout(function(){
// Tylko Chrome
ul1.firstElementChild.remove();
ul2.firstElementChild.remove();
}, 3000);
}
</script>
</head>
<body>
<p>Lista 1</p>
<ul id="ul1">
<li><a href="">Pierwszy odsyłacz</a></li>
<li><a href="">Drugi odsyłacz</a></li>
</ul>
<p>Lista 2</p>
<ul id="ul2">
<li><a href="">Pierwszy odsyłacz</a></li>
</ul>
</body>
</html>
Na chwilę obecną jedynie przeglądarki Firefox i Chrome zaimplementowały metodę remove()
.
Metoda remove()
pojawia się dopiero w specyfikacji DOM4.
Składnia Web IDL#
[NoInterfaceObject] interface ChildNode { [Unscopable] void remove(); }