Skip to main content
 首页 » 编程设计

jquery之如何防止 jQuery .html() 自动转义 href 属性

2026年07月28日9think

更新:正如 TimWolla 评论的那样,这似乎是浏览器特定的行为 - 我应该如何以跨浏览器的方式可靠地标准化为未转义版本?

HTML:

<div id="test"><a href="#{one}">#{two}</a></div> 

JS:

$('#test').html() 
=> <a href="#%7Bone%7D">#{two}</a> 

请注意,href 中的 #{one} 已转义,而 #{two} 则未转义。

除了 unescape 整个字符串之外,还有更好的方法吗?

unescape($('#test').html()) 
=> <a href="#{one}">#{two}</a> 

示例如下:http://jsfiddle.net/kenn/n8veL/

请您参考如下方法:

首先,我怀疑你的问题是否有可靠的解决方案。根本原因很简单:因为底层工作的 Element.innerHTML 是非标准的,它仅取决于浏览器的实现。

如果您想要一个可靠的解决方案,我建议您使用 DOM 操作而不是模板。