2010-09-14 2 views
0

У меня есть следующий код JavaScriptJavascript кодирования проблема декодирования

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

И мой HTML имеет D1 DIV вроде следующего

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

Теперь, когда я добавить точку останова и увидеть мои две переменные сСт и другие. Один показан & и другой \ x26. Также

cst.length == 1  

но

other.length == 4 

Я смущен. Мне нужно, чтобы значение было таким же (&), и я не могу изменить Div. Я также использую JQuery, поэтому я могу использовать $ (div_id)

ответ

1

HTML не использует строки escape-стиля в стиле Javascript.

Ваш <div> фактически говорит \x26, а не &.

+0

Затем как я могу его снова преобразовать в & в Javascript? Я не могу изменить Div и мне нужен вывод как & – Tanmoy

0

Попробуйте это.

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

Спасибо. Оно работает. Но я не сторонник eval. Я выберу это, если у меня нет другого рабочего ответа. – Tanmoy

+0

Используйте текстовое содержимое ('text()' в jQuery), а не 'innerHTML' /' html() ', в котором будет применено дополнительное HTML-кодирование. 'JSON.parse' безопаснее, чем' eval', где это возможно. Возможно, вы захотите проверить, что в строке нет неэкономной цитаты или новой строки, прежде чем «eval» в противном случае. – bobince

Смежные вопросы