Para eliminar un nodo de tipo elemento disponemos del método removeChild, este método lo llamamos a partir del nodo padre.
Veamos un ejemplo que permita eliminar el primer o último nodo elemento:
pagina.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prueba</title>
</head>
<body>
<div id="parrafos"></div>
<input type="button" value="Agregar nodo tipo elemento" onClick="agregar()">
<input type="button" value="Eliminar primer nodo tipo elemento" onClick="eliminarPrimero()">
<input type="button" value="Eliminar último nodo tipo elemento" onClick="eliminarUltimo()">
<script src="funciones.js"></script>
</body>
</html>
funciones.js
let contador = 1
function agregar() {
let nuevoelemento = document.createElement("p")
let nuevotexto = document.createTextNode("Hola Mundo " + contador + " - ")
contador++
nuevoelemento.appendChild(nuevotexto)
let puntero = document.getElementById("parrafos")
puntero.appendChild(nuevoelemento)
}
function eliminarPrimero() {
let puntero = document.getElementById("parrafos")
if (puntero.children.length > 0)
puntero.removeChild(puntero.children[0])
}
function eliminarUltimo() {
let puntero = document.getElementById("parrafos")
if (puntero.children.length > 0)
puntero.removeChild(puntero.children[puntero.children.length - 1])
}
La primera función nos permite crear un nodo de tipo elemento y añadirlo a otro nodo elemento de la página:
function agregar() {
let nuevoelemento = document.createElement("p")
let nuevotexto = document.createTextNode("Hola Mundo " + contador + " - ")
contador++
nuevoelemento.appendChild(nuevotexto)
let puntero = document.getElementById("parrafos")
puntero.appendChild(nuevoelemento)
}
Lo nuevo se encuentra en la función de eliminarPrimero:
function eliminarPrimero() {
let puntero = document.getElementById("parrafos")
if (puntero.children.length > 0)
puntero.removeChild(puntero.children[0])
}
Obtenemos una referencia al nodo elemento llamado "parrafos", si este nodo tiene nodos hijos procedemos a llamar al método removeChild y le pasamos como parámetro la referencia a su primer hijo (puntero.children[0]).
Este control lo hacemos para validar que el nodo tenga nodos hijo.
Para eliminar el último nodo:
function eliminarUltimo() {
let puntero = document.getElementById("parrafos")
if (puntero.children.length > 0)
puntero.removeChild(puntero.children[puntero.children.length - 1])
}
Enviamos como parámetro al método removeChild la referencia del último hijo al que accedemos por medio del vector children.