如何在元素中的每个文本部分包裹?

问题描述 投票:1回答:1

我想在每个文本部分周围包裹一个span元素,该文本部分尚未被另一个元素包裹。

我有这个:

<p>
  text text text text text text text text <span class="f1">f1 text</span> text text text text text text text text text text text text text <span class="f2">f2 text</span> text text text text text text text
</p>

我想要的是:

<p>
  <span>text text text text text text text text</span><span class="f1">f1 text</span>
  <span>text text text text text text text text text text text text text</span><span class="f2">f2 text</span><span> text text text text text text text</span>
</p>
javascript jquery text textwrapping
1个回答
1
投票

过滤除文本节点之外的所有内容,并将其包装起来

$('p').contents().filter(function() {
    return this.nodeType === 3;
}).wrap('<span />');

FIDDLE

© www.soinside.com 2019 - 2024. All rights reserved.