围绕特定文本换行新的div元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了围绕特定文本换行新的div元素相关的知识,希望对你有一定的参考价值。

我正在努力解决这个问题。

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

以下是场景:

<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之后得到下一个textnode并包装:

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

FIDDLE

由于jQuery确实没有获得文本节点,因此本机nextSibling应该可以工作。

另一答案

为此,您可以在$('。ContentDiv')之后添加一个div,然后将html添加到它。

$("<div id='new_div'></div").insertAfter($('.ContentDiv')).html("Share your knowledge. <a href='URL'>Be the first to write a review »</a>");

以上是关于围绕特定文本换行新的div元素的主要内容,如果未能解决你的问题,请参考以下文章

Linux 5.19 获得将近 50 万行新的图形驱动程序代码

如何可以让div内的元素不换行?

当文本换行到两行时,块元素采用全宽

如何通过可内容编辑的div输入将元素的换行符(格式)保留在列表中?

如何在D3中为文本div的特定部分着色?

div标签内的文本会自动换行,span则不会。