使用jquery用空格替换<br/>

时间:2012-01-12 20:20:38

标签: jquery replace

我正在导入Facebook RSS提要,许多帖子都缺少标题。因此,在这种情况下,我想从正文中提取一些内容并将其用作标题。问题是身体内容看起来像这样......

Lorem ipsum<br>www.youtube.com<br>dolor sit amet.

我不能简单地删除br标签,因为它将成为句子上的运行。我宁愿用一个空格替换标签或用空格替换逗号。我已经尝试了以下代码,但它似乎没有起作用。

$('.teaser-title br').replaceWith(' ');

思想?

7 个答案:

答案 0 :(得分:12)

描述

2可能出现的问题

  1. 您没有班级teaser-title的元素。
  2. 你不要等到DOM完全构建
  3. 无论如何,这是有效的

    示例

    <div class="teaser-title">
        Lorem ipsum<br>www.youtube.com<br>dolor sit amet.
    </div>
    
    <script>
    $(function() {
       $('.teaser-title br').replaceWith(' ');
    });
    </script>
    

    查看此jsFiddle

答案 1 :(得分:4)

发布,因为它可以完成!可以使用CSS:P

(仅适用于webkit,因此不推荐)

.teaser-title br{
    content:"";
}

.teaser-title br:after{
   content:" ";
}

<强> Live Demo

答案 2 :(得分:2)

$(function() {
    $(".teaser-title br").replaceWith("&nbsp;");
});

答案 3 :(得分:1)

  

我不能简单地删除br标签,因为它会成为一个句子。

由于您担心在句子上运行,因此可以将<br>替换为<wbr> s。

HTML5因此描述了<wbr>

  

wbr元素表示换行机会。

答案 4 :(得分:0)

您希望将内容替换为文本,而不是标记:

$('.teaser-title').html($('.teaser-title').html().replace(/<br />/g,' '))

答案 5 :(得分:0)

你正在尝试替换元素,如果.teaser-title是你的容器元素,你必须只替换.teaser-title的innerHtml。

试试这个

var container = $(".teaser-title").html();
var regex = /<br\s*[\/]?>/gi;
$(".teaser-title").html(container.replace(regex, " "));

答案 6 :(得分:0)

您的代码效果很好。 这是另一种方式:

$('.teaser-title br').after(' ').remove();
//$('.teaser-title br').replaceWith(' '); // your solution works too!

demo