jQuery在段落中的br之前和之后的跨度中包装文本

时间:2013-09-26 20:56:04

标签: jquery

正如标题所示,我想知道如何在段落中的br之前和之后的范围内包装文本。

我的HTML就是这样......

<div class="blog-container">
  <div class="each-article">
    <p>Text text text <br/> text text text</p>
  </div>
  <div class="each-article">
    <p>Text text text <br/> text text text</p>
  </div>
</div>

我认为可以使用的jQuery是

$('.blog-container .each-article p br').before().wrap('<span></span>');

这给了我的是:

<div class="blog-container">
  <div class="each-article">
    <p>Text text text <br><span></span></br> text text text</p>
  </div>
  <div class="each-article">
    <p>Text text text <br><span></span></br> text text text</p>
  </div>
</div>

1 个答案:

答案 0 :(得分:9)

试试这个:

http://jsfiddle.net/kKfKS/

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

参考文献:

修改 - 此处不需要修剪。但是,在某些情况下(如果非文本节点是第一个子节点),空白空间可以视为文本节点。看到这个小提琴:http://jsfiddle.net/M3knf/