2013-12-04 4 views
0

Я использовал $.get и полученные данные, какПреобразование escaped текста в html в javascript?

'<option value=\"US-ID\" >Idaho<\/option>\n <option value=\"US-IL\" >Illinois<\/option>\n <option value=\"US-IN\" >Indiana<\/option>\n <option value=\"US-KS\" >Kansas<\/option>\n' 

Я хочу использовать $(...).html(html_data) как мне сделать данные я получаю в HTML данных, которые я могу использовать?

, что я получаю, когда $(...).html(data)

http://jsfiddle.net/9WeUv/

Не знаю, если это имеет значение, но console.log(data):

'...data...'

, тогда как console.log('regular_string'):

regular_string // нет котировок

+0

Откуда взялась строка? Что добавляет символы '\'? – Pointy

+0

Возможно, запрос Ajax? – Pippin

ответ

2

Что случилось с:

var html_data = '<option value=\"US-ID\" >Idaho<\/option>\n <option value=\"US-IL\" >Illinois<\/option>\n <option value=\"US-IN\" >Indiana<\/option>\n <option value=\"US-KS\" >Kansas<\/option>\n'; 

$('#select_element_id').html(html_data); 

http://jsfiddle.net/45CYX/

После правки:

К сожалению, не строка, которую вы получили тот, который вы написали на вершине? В вашем jsFiddle у вас нет JS-кода, просто какой-то текст в теге select - это не то, что вы говорите в вопросе.

+0

по какой-то причине, когда я это сделал, <\/option> и \ n, и т.д. будут там. – Derek

+0

Насколько я знаю, функция 'html()' в jQuery позаботится о десериализации строки для вас. – MarcoL

+0

хорошо, что вещь 'console.log (data)' дает '' ... ''где для регулярной строки' console.log (' foo ') 'дает' foo'. Не знаю, если это имеет значение. – Derek

0

Предполагая, что вы схватили html из вызова ajax и хотите добавить его в тело.

$newSelect = $("<select></select>").html(html_data); 
$(document.body).append($newSelect); 

http://api.jquery.com/jQuery/#jQuery2 - Создает DOM элементов на лету из предоставленной строки сырого HTML.

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