我在jsp页面上有如下文字:
离。 1
< H1>标题1< / h1>
离。 2
供应商0425βγ!
我需要做的是将此文本移动到页面的另一部分,使用JS,其中html实体保持未转义。 问题是文本现在显示如下(标签和html实体现在被解释为html):
离。 1
离。 2
供应商0425βγ!
当我使用$("#<ID>").text(<text>);
时,它对ex.1工作正常(h1保持“未解释”)但不适用于ex.2(html实体仍然转换为相应的unicode符号)。
一些澄清。
正如我所知,.text()在小提琴中工作正常:
let heading = `<h1> Header 1 </h1>`,
supplier = `SUPPLIER 0425βγ!`;
$("#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βγ!"/>
<div id="visibleName">
</div>
所以答案很简单:在隐藏字段中转义文本并使用.text()。
答案 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"));
要求提出问题海报:
答案 1 :(得分:0)
jQuery中的.html(string)
方法将string
视为HTML,同时.text(string)
将其视为纯文本。
var heading = "<h1> Header 1 </h1>",
supplier = "SUPPLIER 0425βγ!";
$("#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>