将原始html实体(十进制)值检索为字符串

时间:2012-09-14 12:33:09

标签: javascript jquery html encoding

  

可能重复:
  how to make iphone apps like ibeer, imilk, ibug, ibeer
  Use javascript to get raw html code

假设我有一个像这样的html部分:

<div id="post_content">
  <span>&#9654;<span>
</div>

(这是正确的指向三角形)

我希望将“post_content”的子节点视为原始html,即字符串与上面的代码完全相同,所以:

"<span>&#9654;<span>"

当我这样做时

$('#post_content').html() 

当我使用$ .post()发布时,跨度get的内容转换为其他内容,例如它变为%E2%96%B6。

如何将post_content的内容作为与原始字符串完全相同的字符串?

2 个答案:

答案 0 :(得分:0)

看看这里:

How to decode HTML entities using jQuery?

基本上使用:

var decoded = $("<div/>").html(encodedStr).text();

会得到你想要的东西。

答案 1 :(得分:0)

this excellent answer中所述,您不能将收到的HTML解析为DOM,只能用于编写脚本。您只能从XMLHttpRequest的responseText获取纯文本。

如果从DOM获取innerHTML$el.html()做什么),则会序列化。 HTML5 specifies how to do that,但旧版浏览器通常不符合规定。

问题$.post()是这个方法在HTTP请求中发送文本 - 当然是编码的。您看到的只是encodeURIComponent应用于您获得的Unicode字符串。尝试alert()console.log()值,您将看到它的真实表示。