如何使用 jquery 设置 pre 标记的文本
我使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是基于 *nix 的系统和 windows 系统之间的常见问题。有人为 jQuery 编写了一个简单的换行符检测插件 newlinecharacter
所以,你可以做的是
: ,您正在做的是将所有 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:
Which, what you're doing is replacing all windows style line breaks with ones appropriate for the system viewing the data.
对我来说就像一个魅力: 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 thevalue
attribute on thepre
tag, which of course has no effect.)我建议在这种情况下不要费心使用 jQuery,而只需使用普通的旧 javascript 设置对象:
没有理由将 jQuery 开销添加到像这样简单的东西中。如果你想在多个元素上使用它,jQuery 就可以了:
I would suggest not bothering to use jQuery in this instance, and just set the object using plain old javascript:
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:
尝试使用标准 DOM 方法,也许 jQuery 会自己做一些事情:
Try using standard DOM methods, maybe the jQuery does something on it's own: