17

我正在使用 pre 标签来保存一些带有回车符的原始格式文本。当页面第一次显示时,它看起来很好。稍后,我只想刷新 pre 数据。我尝试了两种使用 jquery 的方法,一种使用 .html(),另一种使用 .text()。两者都可以工作,但是 .html 会丢弃回车符,而 .text 会丢弃回车符!我也尝试过 .val() 但这根本不起作用。这是代码(当然我一次只使用其中一条 jquery 行。)

<pre id="QComment">Initial Text</pre>

一段时间后,

$('#QComment').text(databack);   // or
$('#QComment').html(databack);
4

4 回答 4

17

这是基于 *nix 的系统和 windows 系统之间的常见问题。有人为 jQuery换行符写了一个简单的换行检测插件

所以,你可以做的是:

$('#QComment').text(databack.replace(/\r\n/g,EOL));

其中,您正在做的是将所有 Windows 样式的换行符替换为适合系统查看数据的换行符。

于 2011-02-11T19:25:18.767 回答
4

对我来说就像一个魅力:小提琴演示

也许你有一些编码问题?一个例子会有所帮助。

(在标签上.val()设置value属性pre,当然没有效果。)

于 2011-02-11T19:22:45.523 回答
1

我建议不要在这种情况下使用 jQuery,只需使用普通的旧 javascript 设置对象:

document.getElementById('QComment').innerHTML = yourHTML;

没有理由将 jQuery 开销添加到如此简单的事情上。如果你想在多个元素上使用它,jQuery 很好:

$('#selector, .selector, [selector]').each(function(element, index){
  element.innerHTML = yourHTML;
});
于 2011-02-11T19:17:44.010 回答
0

尝试使用标准的 DOM 方法,也许 jQuery 会自己做一些事情:

$('#QComment')[0].innerHTML = html;
于 2011-02-11T19:14:41.950 回答