我正在尝试使用原生JS编写脚本(无jQuery),如果有人在元素外部单击,则会将该元素从页面中删除。
然而,这个
包含许多嵌套元素,并且我设置的方式是即使单击第一个元素内的元素,它也会消失。
示例标记:
<div id='parent-node'>
This is the Master Parent node
<div id ='not-parent-node'>
Not Parent Node
<button>Button</button>
<div id='grandchild-node'>
Grandbaby Node
</div>
</div>
</div>
所以我希望无论元素嵌套多深,它都能检查是否是 <div id='parent-node'>
元素的后代。因此,如果我在其中单击,它将不会删除父节点及其所有后代。只有当单击父 div
之外时,div
及其后代才应该被动态移除。
目前这就是我的代码,我知道其中存在一些严重的缺陷:
function remove(id) {
return (elem = document.getElementById(id)).parentNode.removeChild(elem);
}
document.addEventListener("click", function (e) {
remove('parent-node');
});