Reload/refresh DOM 具有事件后创建的新元素

Reload/refresh the DOM with new elements that are created after an event

我想访问在某个事件之后创建的元素。这些元素在原来的DOM.
中是缺失的,例如-

var inputs = document.getElementsByClassName('some class name');
//do some event to open a new div popup
var newInput = document.getElementsByClassName('new class name in the new div popup');

现在,如何访问 newInput?
如果我什么都不做,它将是 undefined。如果我能以某种方式 reload/refresh DOM 那么我将能够访问这些新元素。

location.reload(); 不会工作,因为它会刷新整个页面并且我之前的所有值都将丢失,例如 inputs

单击按钮时会附加新的 div

点击事件之前:

<div class="some class name"></div>

点击事件后:

<div class="some class name"></div>
<div class="new class name in the new div popup"></div>

您可以使用 MutationObserver 来观察特定的 DOM 元素并在满足 MutationObserver 中的条件时执行逻辑:https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

简单来说:

  1. 观察例如一个 'parent' 元素,其中 'receives' 您要定位的 DOM 个元素
  2. 只要插入新元素,MutationObserver 就会 运行 并允许您 运行 基于它的自定义代码
  3. 如果您不需要在 MutationObserver 使用后继续观察元素,您也可以断开 Observer。