javascript - 如何从父级上取消div的钩子(Hook)然后将其钩回来?

标签 javascript html

<div id='parent'>
    <div id='child'></div>
</div>

我想将 child 从 parent 身上解开。然后对子级进行一系列不同的 dom 操作,然后将其挂回父级 - 这样浏览器只执行一次回流(而不是每次我在子级中更改某些内容时都进行回流)。我怎样才能做到这一点?

var child = document.getElementById('child');
var parent = document.getElementById('parent');

child.parent = null; // something like this
//.... // do a bunch of edits to the child then
child.parent = parent; // to set it back

最佳答案

您可以克隆原始节点,进行所需的更改,删除原始节点并添加更改的节点。

var button = document.getElementById('mybutton');
  button.addEventListener('click', function() {
    var parent = document.getElementById('parent');
    var child = document.getElementById('child');
    
    var clone = child.cloneNode(true);
    clone.innerHTML = '<p><strong>Changes</strong></p>';
    
    child.remove();
    parent.appendChild(clone);
  });
<div id='parent'>
    <div id='child'>Original</div>
</div>
<button id='mybutton'>Click me</button>

关于javascript - 如何从父级上取消div的钩子(Hook)然后将其钩回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35993098/

相关文章:

javascript - 如何根据下拉选项列表中的选定值过滤 div?

javascript - 如何为每个元素运行一个函数并产生不同的结果?

javascript - 如何使用JQuery获取真实图像高度?

javascript - 启动多个选项卡的 Google Chrome 应用程序意外崩溃

javascript - 通过 jQuery 搜索子字符串

html - 让一个 float 元素溢出到一定程度

javascript - jqgrid图标的onclick下拉列表

javascript - 获取字符串中的重复字符

javascript - javascript点击事件处理程序不工作

html - 如何忽略 roadie gem 中覆盖桌面样式的媒体查询样式?