使用JS / CSS将代码显示为文本

时间:2017-03-13 16:29:40

标签: javascript jquery css

我在jsp页面上有如下文字:

离。 1

< H1>标题1< / h1>

离。 2

供应商0425βγ!

我需要做的是将此文本移动到页面的另一部分,使用JS,其中html实体保持未转义。 问题是文本现在显示如下(标签和html实体现在被解释为html):

离。 1

标题1

离。 2

供应商0425βγ!

当我使用$("#<ID>").text(<text>);时,它对ex.1工作正常(h1保持“未解释”)但不适用于ex.2(html实体仍然转换为相应的unicode符号)。

一些澄清。

正如我所知,.text()在小提琴中工作正常:

let heading = `<h1> Header 1 </h1>`,
  supplier = `SUPPLIER 0425&#946;&#947!`;

$("#h").text(heading);
$("#s").text(supplier);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="h"></div>
<div id="s"></div>

但在应用程序中我有不同的行为。 原因还有一步。

$("#visibleName").text($("#name").val())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="hidden" id="name" value="SUPPLIER 0425&#946;&#947!"/>

<div id="visibleName">
</div>

所以答案很简单:在隐藏字段中转义文本并使用.text()。

2 个答案:

答案 0 :(得分:1)

请参阅以下示例。它表明你必须使用.html()来添加代码。有一种方法可以使用text()来执行此操作,但您必须手动添加&lt; h1&gt;第一:

value
$(".container1").text("<h1> Header 1 w/ text </h1>");
$(".container2").html("<h1> Header 1 w/ html </h1>");
$("<h1>").text("Header 1 with text correctly").appendTo($(".container3"));

要求提出问题海报:

http://jsfiddle.net/nfnneil/nc80nxpg/2/

答案 1 :(得分:0)

使用.html()代替.text()

jQuery中的.html(string)方法将string视为HTML,同时.text(string)将其视为纯文本。

var heading = "<h1> Header 1 </h1>",
  supplier = "SUPPLIER 0425&#946;&#947!";

$("#h").html(heading);
$("#s").html(supplier);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="h"></div>
<div id="s"></div>