javascript - 将新的 div 元素包裹在特定文本周围

标签 javascript jquery html text

我正在为这个问题苦苦挣扎。

如何包装新的 <div>文本周围没有任何类或 ID 的元素?

以下是场景:

<div class="ContentDiv">.....</div>

Share your knowledge. <a href="URL">Be the first to write a review »</a>

我需要新的div环绕“Share your knowledge. <a href="URL">Be the first to write a review »</a>

我尝试过以下方法:

$(document).ready(function() {
  $('.ContentDiv').each(function() {
    $(this).add($(this).next()).wrapAll('<div class="NewDiv"></div>');
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ContentDiv">.....</div>

Share your knowledge. <a href="URL">Be the first to write a review »</a>

但它不起作用,因为它环绕 <a>仅元素并将文本保留在其下方。我还需要其中的其余文本。

最佳答案

您需要获取 .ContentDiv 之后的下一个文本节点并将其换行:

$('.ContentDiv').each(function() {
   $(this).next('a').add(this.nextSibling).wrapAll('<div class="NewDiv"></div>');
});

FIDDLE

由于 jQuery 并未真正获取文本节点,因此 native nextSibling 应该可以工作。

关于javascript - 将新的 div 元素包裹在特定文本周围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14900591/

相关文章:

javascript - 如何使用 JavaScript 将周数添加到当前日期?

javascript - 为什么我的图片隐藏了页脚?

javascript - 覆盖时刻js默认无效日期文本

javascript - 如何在我的 javascript 中执行 anchor\href?

php - 单击后打开带有子菜单的水平菜单

javascript - 防止在特定屏幕尺寸的智能手机上滚动

html - 当屏幕太小时将标题放在两行

html - <_o3a_p> 在网页上来自哪里?

javascript - 如何将可拖动元素返回到选项中?

javascript - 将 Mongoose 中的字符串日期与 Date.now() 或 new Date() 进行比较