3

正如标题所示,我想知道如何在段落中的 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>
4

1 回答 1

9

尝试这个:

http://jsfiddle.net/kKfKS/

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

参考:

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

于 2013-09-26T21:02:45.667 回答