Después de responder this question Me pregunto por qué removeChild
necesita un elemento padre. Después de todo, podríamos simplemente hacemos¿Por qué removeChild necesita un nodo principal?
node.parentNode.removeChild(node);
Como el nodo padre debe estar siempre disponible directamente en el motor Javascript/DOM, no es estrictamente necesario para abastecer el nodo padre del nodo que se va a quitar.
Por supuesto que entiendo el principio de que removeChild
es un método de un nodo DOM, pero ¿por qué no existe algo como document.removeNode
(que simplemente acepta un nodo arbitrario como parámetro)?
EDIT: Para ser más claro, la pregunta es: ¿por qué el motor JS necesita el nodo padre en absoluto, si ya tiene el nodo (único) que se va a eliminar?
El DOM es un concepto orientado a objetos. Eso significa que tendría más sentido si 'Node.prototype.remove' existiría para eliminar el nodo en sí mismo que si' Document.prototype.removeNode' existiera para eliminar un nodo del documento. Porque esto último simplemente se implementaría llamando a 'removeChild' en el padre del nodo. – Gumbo