1

我不知道该怎么做,所以这是我的困境:

我的 about div 里面有常规文本。但是,在其中添加了一些 js 跨度之后。但我想将现有文本包装在 span 标签中。我将如何将跨度包装到已经不在跨度中的文本?

在这里做了一个小提琴

<div class="about">
    This text isn't wrapped in an html tag
    <span>But this is</span>
</div>

如何通过 jquery 将常规文本包装到 span 标签中?

提前谢谢你的帮助。

4

2 回答 2

4

您可以使用 jQuery.contents获取文本节点,如果它们是选中节点的文本节点子节点,则将它们包装起来。

$(".about").contents().filter(function () {
    return this.nodeType === 3 && this.parentNode == $(".about").get(0);
}).wrap("<span>");

http://jsfiddle.net/ExplosionPIlls/PXTuD/6/

于 2013-05-06T22:07:34.153 回答
0

这将通过在整个事物周围放置跨度来实现:

$("div").html("<span>" + $("div").html() + "</span>");
于 2013-05-06T22:13:33.193 回答