更换  与<br/>

时间:2014-06-09 16:52:40

标签: javascript jquery html

我需要将Feed行字符&#10;替换为<br>,但在我的生命中无法使其生效。请参阅下面的代码和jsfiddle以获得有效的演示。

HTML

<p id="testText">Test Test &#10; Test</p>

的Javascript

var $text = $('#testText');
var tempText = $text.text();
tempText.replace("&#10;", "<br>");
tempText.replace("\n", "<br>");
tempText.replace("\r", "<br>");
tempText.replace("\n\r", "<br>");
$text.text(tempText+"!");

http://jsfiddle.net/kyct/AR2xH/

5 个答案:

答案 0 :(得分:2)

replace函数返回它的结果,因为字符串本身是不可变的。您只需在调用replace时设置变量:

 tempText = tempText.replace("&#10;", "<br>");

这是你固定的小提琴:http://jsfiddle.net/AR2xH/3/

如果你真的想要一个换行而不是String,那么使用jQuerys html()函数而不是text()

$text.html(tempText+"!");

答案 1 :(得分:1)

您必须编辑HTML而不是简单地替换文本。所以先替换文本,然后设置HTML

http://jsfiddle.net/AR2xH/8/

$(document).ready(function()
{
    var $text = $('#testText');
    var tempText = $text.text();
    tempText = tempText.replace("&#10;", "<br>");
    tempText = tempText.replace("\n", "<br>");
    tempText = tempText.replace("\r", "<br>");
    tempText = tempText.replace("\n\r", "<br>");
    $text.html(tempText+"!");
});

答案 2 :(得分:0)

Updated your fiddle

$(document).ready(function()
{
  var $text = $('#testText');
  var tempText = $text.text();
  tempText = tempText.replace("&#10;", "<br>");
  tempText = tempText.replace("\n", "<br>");
  tempText = tempText.replace("\r", "<br>");
  tempText = tempText.replace("\n\r", "<br>");
  $text.text(tempText+"!");
});

我添加了等待加载文档,并将tempText的值设置为替换值。

答案 3 :(得分:-1)

var $text = $('#testText');
var tempText = $text.text();
tempText = tempText.replace("&#10;", "<br>");
tempText = tempText.replace("\n", "<br>");
tempText = tempText.replace("\r", "<br>");
tempText = tempText.replace("\n\r", "<br>");
$text.text(tempText+"!");

答案 4 :(得分:-1)

jQuery text函数自动转义任何潜在的html实体。请改用html函数,如下所示:

$text.html(tempText+"!");

此外,正如Jivings所指出的,replace函数不会修改字符串。相反,你必须做tempText = tempText.replace([etc.]);