1

我想在不做任何更改的情况下获取元素的内容。当我使用 .html() 时,它会不必要地转义字符,例如转义&&.

在我的代码中,内容是来自服务器的数据。问题是原始数据已被转义。我也不想使用转义过程。这意味着 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必须保存正确的(原始)数据。

4

3 回答 3

4

您应该使用相同的组合:-

var str = $("p:first").html();
$("p:last").html(str);

或者

var str = $("p:first").text();
$("p:last").text(str);

或者,如果您想按原样显示标签,则必须转义“<”、“>”、“&”等

var  str = $('p:first').html();
str = str.replace(/>/g,"&gt;").replace(/</g, "&lt;");
$("p:last").html(str);
于 2013-05-09T04:03:11.223 回答
0

改变

$("p:last").text(str);

$("p:last").html(str);

jsFiddle

于 2013-05-09T04:02:27.800 回答
0

下面的代码可以很好地将innerhtml原样复制到另一个元素中。 jQuery 小提琴

var str = $("p:first").innerHtml();
$("p:last").text(str);
于 2013-05-09T05:32:46.377 回答