如何使用 jquery 设置 pre 标记的文本

发布于 2024-10-17 04:26:59 字数 388 浏览 7 评论 0原文

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

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

稍后一段时间,

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

I'm using a pre tag to hold some raw formated text that has carriage returns. When the page is first displayed, it looks fine. Later, I want to refresh just the pre data. I've tried two ways to do this with jquery, one using .html() and the other way with .text(). Both sorta work, but the .html throws away the carriage returns and the .text double spaces the carriage returns! I've also tried .val() but that didn't work at all. Here's the code (of course I only use one of the jquery lines at a time.)

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

at some time later,

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

后来的我们 2024-10-24 04:26:59

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

所以,你可以做的是

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

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

This is a common problem between *nix based systems and windows systems. Someone wrote a simple newline detection plugin for jQuery newlinecharacter

So, what you can do is:

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

Which, what you're doing is replacing all windows style line breaks with ones appropriate for the system viewing the data.

白鸥掠海 2024-10-24 04:26:59

对我来说就像一个魅力: fiddle demo

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

.val()pre 标记上设置 value 属性,这当然没有任何效果。)

Works like a charm for me: fiddle demo

Maybe you have some encoding problem? An example vould help.

(.val() sets the value attribute on the pre tag, which of course has no effect.)

星軌x 2024-10-24 04:26:59

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

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

没有理由将 jQuery 开销添加到像这样简单的东西中。如果你想在多个元素上使用它,jQuery 就可以了:

$('#selector, .selector, [selector]').each(function(element, index){
  element.innerHTML = yourHTML;
});

I would suggest not bothering to use jQuery in this instance, and just set the object using plain old javascript:

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

There's no reason to add the jQuery overhead to something as simple as this. If you want to use this on multiple elements, jQuery is fine:

$('#selector, .selector, [selector]').each(function(element, index){
  element.innerHTML = yourHTML;
});
停顿的约定 2024-10-24 04:26:59

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

$('#QComment')[0].innerHTML = html;

Try using standard DOM methods, maybe the jQuery does something on it's own:

$('#QComment')[0].innerHTML = html;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文