更新:看起来像TimWolla评论的浏览器特定行为 - 我应该如何以跨浏览器的方式可靠地规范化非转义版本?
HTML:
<div id="test"><a href="#{one}">#{two}</a></div>
Run Code Online (Sandbox Code Playgroud)
JS:
$('#test').html()
=> <a href="#%7Bone%7D">#{two}</a>
Run Code Online (Sandbox Code Playgroud)
请注意#{one},href中的内容是转义的,而#{two}不是.
有没有比unescape整个字符串更好的方法?
unescape($('#test').html())
=> <a href="#{one}">#{two}</a>
Run Code Online (Sandbox Code Playgroud)
这是一个例子:http://jsfiddle.net/kenn/n8veL/
如果您无论如何都要通过 JavaScript 对元素执行扩展,则可以将“href”模板放在单独的属性中。
<a href='#dummy' data-href='#{template}'>Hi</a>
Run Code Online (Sandbox Code Playgroud)
然后只需从数据属性扩展并将结果放入真正的“href”中。