如何将两个 html 元素绑定在一起,当第一个元素被移除时,第二个元素也从 DOM 中移除

How to bind two html elements together that when first one is removed second one also removed from DOM

问题陈述如下: 我有一个具有复杂 html 布局的单页应用程序。

此布局中有一个锚标记(div 带有用户电子邮件)。

当用户点击该锚点时,应用会显示弹出窗口。

弹出窗口呈现为 'body'。我无法在锚点内部或锚点附近渲染它,因为锚点容器会剪切弹出窗口,因为弹出窗口的大小大于容器。

所以问题是当锚元素从 DOM 中移除时 remove/hide 弹出窗口的最佳方式是什么(它不是直接移除而是通过移除其父元素之一)。

我看到两个选项 - 一个是显示的弹出窗口的 setInterval 以检查锚点是否仍然存在。

另一个是 register/unregister 当 popover 为 shown/hidden 时的一些回调,并调用它们以确保锚标记的存在,当 dom 在单页应用程序逻辑实现中发生变化时.

我只是想可能有另一种方法可以实现位于不同 DOM 树分支的锚点和弹出窗口之间的这种绑定?

我建议通过为弹出框指定一个唯一名称(可能使用每次创建弹出框时都会增加的 javascript 索引变量)并将其存储在 rel 属性中来将弹出框链接到锚点的锚。确保锚点具有特定的 class(例如 'has-popover')

当要删除锚点的父元素时,检查具有 'has-popover' class 的子元素。使用锚点的 rel 属性获取弹出窗口的元素 ID,以便随后也将其删除。