javascript - 如何替换 DOM 节点并将其包装起来?

标签 javascript jquery replacewith

我有一个 div,我将其替换为文本区域,例如:

var $targetDiv = $('#the-div');
var $newDiv = $('#the-new-div');

$targetDiv.replaceWith($newDiv);

这会变成:

<div id="the-div"></div>

进入:

<div id="the-new-div"></div>

我该如何包装<div id="the-new-div"></div>在名为 <div id="the-new-div-wrapper"> 的 div 中?

所以结果会变成:

<div id="the-new-div-wrapper">
<div id="the-new-div">
</div>
</div>
$targetDiv.replaceWith($newDiv).wrap('<div id="the-new-div-wrapper"' />')

似乎不起作用。

最佳答案

先包起来

$targetDiv.wrap('<div id="the-new-div-wrapper" />').replaceWith($newDiv);

或者将其分成两行:

$targetDiv.replaceWith($newDiv);
$newDiv.wrap('<div id="the-new-div-wrapper" />');

Fiddle

您的代码中还有一个拼写错误:$targetDiv.replaceWith($newDiv).wrap('<div id="the-new-div-wrapper"' />')多了一个不应该出现的撇号。

关于javascript - 如何替换 DOM 节点并将其包装起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121325/

相关文章:

javascript - Vanilla JavaScript 替换元素

javascript - 在 JavaScript 中分区

javascript - 打印 JSON 数据?

jquery - 如何获取 $.ajax 设置作为响应?

javascript - 如何在同一页面上单击两个不同的图像时显示一个相同的模态?

jquery - ReplaceWith 自动关闭标签

javascript - 选择具有较高索引的所有 sibling 的最有效方法是什么?

javascript - UWP:后台任务 - 自定义触发器

jquery - 每次点击切换 addClass

jquery - 使用 jQuery 将 css 添加到 replaceWith 元素