转换HTML编码< br />在jquery .text()中使用html新行标记

时间:2013-01-20 15:33:17

标签: jquery html newline

我在变量sometext中有一些文字,我希望使用div分配给$('div').text(sometext);。问题是<br/>中的所有sometext都变为&lt; br/ &gt;。我无法使用$('div').html()因为我希望在div中保留很多内部结构,所以我只能使用.text()函数。

因此,一旦我将文本传递到div,是否有任何方法可以将编码的<br/>标记更改为HTML中的实际换行符?我的意思是这样的:

$('div').convertMyBRsToHTML();

2 个答案:

答案 0 :(得分:5)

您要求的功能应如下所示:

$.fn.convertMyBRsToHTML = function(text){
    this.text(text);
    this.html(this.html().replace(/&lt;br\s*\/&gt;/g,'<br/>'));
    return this;
}

现在你可以使用:

$(YOUR_SELECTOR).convertMyBRsToHTML("<b>Some</b> new text.<br />next line<br />and so on");

答案 1 :(得分:2)

您可以在设置文字之前替换<br>

$('div').text(sometext.replace(/<br\s*\/?>/gi, '\n');