ACTUALIZACIÓN: Parece un comportamiento específico del navegador como comentó TimWolla: ¿cómo debo normalizar la versión no escamada, de manera confiable en un navegador cruzado?Cómo evitar que jQuery .html() escape el atributo href automáticamente?
HTML:
<div id="test"><a href="#{one}">#{two}</a></div>
JS:
$('#test').html()
=> <a href="#%7Bone%7D">#{two}</a>
Aviso del #{one}
en el href se escapó, mientras que #{two}
no lo es.
¿Hay una manera mejor que solo unescape
de toda la cadena?
unescape($('#test').html())
=> <a href="#{one}">#{two}</a>
Aquí está el ejemplo: http://jsfiddle.net/kenn/n8veL/
Parece que es un problema específico del navegador. En el motor Googles v8 funciona muy bien. – TimWolla
Ese ancla parece ser una plantilla. ¿Por qué estás analizando una plantilla para el DOM? Las plantillas deben mantenerse en el código fuente (por ejemplo, dentro de un elemento SCRIPT) y procesadas con JavaScript (y solo * luego * analizadas por el navegador). –
TimWolla: maldición! actualizó la pregunta ... – kenn