javascript - 创建一个新元素 div 并使用 JavaScript 将其包裹在现有元素周围
问题描述
我知道如何创建一个新的 div 或任何其他 HTML 元素,并使用纯 JavaScript 将其添加为子元素。
我可以创建一个新元素并将我现有的元素添加到其中吗?
例如:
我想将下面的当前代码放在一个全新的 div 中。
// Current elements on page
<div>
<img />
<img />
</div>
<div>
<p>Hello world</p>
</div>
我想要的是:
// What I want
<div class="my-new-div">
<div>
<img />
<img />
</div>
<div>
<p>Hello world</p>
</div>
</div>
我知道这在 HTML 中很容易做到。在这种情况下,我必须使用 JavaScript 来更改网页。在这种情况下,我必须添加一个父 div 以避免更改样式。
解决方案
您可以简单地获取现有节点,创建一个新节点,将其插入现有节点之前,最后将现有节点作为子节点附加到新节点。如果节点已经包含在文档的某个位置,浏览器会在执行“追加”操作时移动节点。
const myDiv = document.getElementById("myDiv");
const myNewDiv = document.createElement("div");
myNewDiv.style.border = "solid 1px";
document.body.insertBefore(myNewDiv, myDiv);
myNewDiv.appendChild(myDiv);
<div id="myDiv">
<p>Hello</p>
<p>Paragraph</p>
</div>
推荐阅读
- node.js - Firebase 函数仅返回 null
- path - Custom houdini module path
- angular - 我们可以使用角度在 nvd3 强制有向图节点中添加点击事件吗
- java - does it make sense to have a junit test case for user registration?
- c++ - 给 QML 一个 QSharedPointer
或 std::unique_ptr ? - html - 代码标签显示 XML 标记然后在 Chrome 中消失
- ios - SnapKit 和 Dynamic UITableViewCell 布局不正确
- r - 由于非英文字符,dir + file.copy 返回“文件不存在”警告,我该如何解决?
- r - 如何在会话之间方便地移动对象
- java - 在 Java 中使用泛型/模式进行对象映射