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

ken*_*enn 5 jquery templates

更新:看起来像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/

Poi*_*nty 0

如果您无论如何都要通过 JavaScript 对元素执行扩展,则可以将“href”模板放在单独的属性中。

<a href='#dummy' data-href='#{template}'>Hi</a>
Run Code Online (Sandbox Code Playgroud)

然后只需从数据属性扩展并将结果放入真正的“href”中。