仅包含跨度内的文本

时间:2014-04-21 14:13:31

标签: jquery html css

如何仅包含范围内的内容,不包括标签..

这是我拥有的标记...

<span class="foo">
   <span class="bar">+</span>
   lorem ispum lorem ispumlorem ispumlorem ispum
</span>

现在这就是我想要的

<span class="foo">
  <span class="bar">+</span>
  <span class="foobar">lorem ispum lorem ispumlorem ispumlorem ispum</span>
</span>

$('.foo').wrapInner('<span class="foobar"/>')正在包装整个内部内容。\

提前感谢..

4 个答案:

答案 0 :(得分:2)

您可以过滤掉文本节点并将其包装起来:

http://jsfiddle.net/dKtD6/

$('.foo').contents().filter(function() {
    return this.nodeType == 3 && $.trim(this.textContent) != '';
}).wrap('<span class="foobar" />');

答案 1 :(得分:2)

您必须过滤节点然后换行。使用.each()。试试这个:

$('.foo').each(function() {
    $(this).contents().eq(2).wrap('<span class="foobar"/>');
});

<强> DEMO

答案 2 :(得分:1)

将内容包含在内容中,您可以使用

 $('.foo').wrapInner('<span class="foobar"></span>');

答案 3 :(得分:0)

您可以使用nextSibling获取textNode,然后将其包装

$($('.bar').get(0).nextSibling).wrap('<span class="foobar" />')

FIDDLE