2010-09-14 7 views
0

je le javascript suivantJavascript encodage problème de décodage

var cst = "\x26"; 
var other = $("#D1").html(); 

Et mon html a D1 div comme le

suivant
<div id="D1">\x26</div> 

Maintenant, quand j'ajouter un point d'arrêt et de voir mes deux variables cst et autres. L'un est représenté & et un autre \ x26. également

cst.length == 1  

mais

other.length == 4 

Je suis confus. J'ai besoin que la valeur de l'autre soit identique (&) et je ne peux pas changer la Div. J'utilise aussi JQuery pour utiliser $ (div_id)

Répondre

1

HTML n'utilise pas les chaînes d'échappement Javascript.

Votre <div> indique réellement \x26, pas &.

+0

Ensuite, comment puis-je le reconvertir en & Javascript à nouveau? Je ne peux pas changer la Div et j'ai besoin de sortie en tant que & – Tanmoy

0

Essayez ceci.

var other = eval("'" + $("#D1").html() + "'"); 
+0

Merci. Ça marche. Mais je ne suis pas en faveur d'eval. Je vais sélectionner ceci si je n'ai pas d'autre réponse de travail. – Tanmoy

+0

Utilisez le contenu du texte ('text()' dans jQuery) et non pas 'innerHTML' /' html() 'qui sera soumis à un codage HTML supplémentaire. 'JSON.parse' est plus sûr que' eval' s'il est disponible. Vous voudrez peut-être vérifier qu'il n'y a pas de guillemet ou de saut de ligne sans échappement dans la chaîne avant de l'évaluer autrement. – bobince