부모 노드에 먼저 가야하는 것이 조금 이상해 보입니다 .JavaScript가 이런 식으로 작동하는 이유가 있습니까?
함수 이름은입니다 removeChild()
. 부모가 없을 때 자식을 어떻게 제거 할 수 있습니까? :)
반면에, 당신이 보여준대로 항상 전화를 걸 필요는 없습니다. element.parentNode
주어진 노드의 부모 노드를 얻는 도우미입니다. 부모 노드를 이미 알고 있다면 다음과 같이 사용할 수 있습니다.
전의:
// Removing a specified element when knowing its parent node
var d = document.getElementById("top");
var d_nested = document.getElementById("nested");
var throwawayNode = d.removeChild(d_nested);
https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild
===================================================== =======
더 많은 것을 추가하려면 :
어떤 대답을 대신 사용하는 것을 지적 parentNode.removeChild(child);
, 당신은 사용할 수 있습니다 elem.remove();
. 그러나 내가 알았 듯이 두 기능에는 차이가 있으며 그 답변에는 언급되어 있지 않습니다.
를 사용 removeChild()
하면 제거 된 노드에 대한 참조가 반환됩니다.
var removedChild = element.parentNode.removeChild(element);
console.log(removedChild); //will print the removed child.
그러나를 사용 elem.remove();
하면 참조를 반환하지 않습니다.
var el = document.getElementById('Example');
var removedChild = el.remove(); //undefined
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/remove
이 동작은 Chrome 및 FF에서 확인할 수 있습니다. 나는 그것이 주목할 가치가 있다고 믿는다 :)
내 대답이 질문에 가치를 더하고 도움이되기를 바랍니다.