我希望获得元素的内容而不用进行任何更改。当我使用.html()时,它会不必要地转义字符,例如&
到&
。
在我的代码中,Content是来自服务器的数据。问题是原始数据已被转义。我也不想使用unescaping过程。这意味着2次更改原始数据。
任何想法都会非常感激。
以下是代码:
<html>
<head>
<style>
p { color:blue; margin:8px; }
b { color:red; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<p><b>Hey, Give me originial HTML contents</b>, "& < >" without any escapes. pls</p>
<p></p>
<script>
var str = $("p:first").html();
$("p:last").text(str);
</script>
</body>
</html>
编辑: 如上所述,我需要数据而不做任何更改。 HTML标签也是。我知道.text()的作用。
EDIT2:
str 必须完全正确。 <b>Hey, Give me originial HTML contents</b>, "& < >" without any escapes. pls
。请理解无法正确显示的问题。变量 str 必须包含正确的(原始)数据。
答案 0 :(得分:3)
您应该使用相同的组合: -
var str = $("p:first").html();
$("p:last").html(str);
或
var str = $("p:first").text();
$("p:last").text(str);
或者,如果您想要按原样显示标签,则必须转义“&lt;”,“&gt;” ,“&amp;”等
var str = $('p:first').html();
str = str.replace(/>/g,">").replace(/</g, "<");
$("p:last").html(str);
答案 1 :(得分:0)
答案 2 :(得分:0)
下面的代码可以很好地将innerhtml复制到另一个元素中。 Jquery Fiddle
var str = $("p:first").innerHtml();
$("p:last").text(str);