javascript - 在 javascript 中显示带标记的字符串

标签 javascript jquery

我有一个具有以下格式的字符串:

" Data\r\n  more data <DIV> "

我想精确地显示该字符串,包括前导空格和换行符。

" Data
   more data <DIV> "

我目前正在使用 jquery 来显示此内容

$("<small class='text-success'></small>").text(theString)

这可以很好地编码要显示的任何 HTML 元素,但不适用于前导空格或换行符。

我尝试用不间断空格替换空格,但文本方法也对其进行编码。

有没有办法在不手动编码整个字符串的情况下做到这一点?

最佳答案

This nicely encodes any HTML elements to display but doesn't work for the leading spaces or line breaks.

为此,您需要使用 white-space CSS 属性的值为 preprelinepre-wrap(但可能只是 pre)。理想情况下,通过给它一个应用样式的类来做到这一点:

CSS:

.preformatted {
    white-space: pre;
}

然后

$("<small class='text-success preformatted'></small>").text(theString)

示例:

var theString = " Data\r\n  more data <DIV> ";
$("<small class='text-success preformatted'></small>").text(theString).appendTo(document.body);
.preformatted {
  white-space: pre;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

但如果有必要,您可以内联完成:

$("<small class='text-success'></small>").css("white-space", "pre").text(theString)

示例:

var theString = " Data\r\n  more data <DIV> ";
$("<small class='text-success'></small>").css("white-space", "pre").text(theString).appendTo(document.body);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

关于javascript - 在 javascript 中显示带标记的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50527022/

相关文章:

javascript - Angular/Typescript 无法设置未定义的属性 'data'

javascript - 添加不同颜色的 Gridster 小部件

javascript - 如何从 iCol 索引中获取 colModel 名称?

jquery - 自定义 js 片段在 Chrome 快捷方式的任何页面上运行?

javascript - 单击后显示工具提示,而不是悬停时显示工具提示

javascript - 如何通过 jquery/ajax 将复选框数据作为数组发送到 php 脚本

javascript - jQuery Multiselect 插件返回空长度(应该是 0?)

jquery - 为什么 Firefox 一直突出显示我的下拉菜单链接?可能与 CSS/JQuery 相关

jquery - 如何在单击时删除按钮的样式内容

JQuery 添加类。通过搜索具有相同类的所有元素