Подтвердить что ты не робот

Предотвратить jQuery от экранирования html-объектов

У меня есть простой редактор html. Скажем, что следующие типы пользователей:

<p>Ok, this just &amp; sucks :) &ndash;</p>

и сохраняется в некоторой переменной:

var content = "<p>Ok, this just &amp; sucks :) &ndash;</p>";

Теперь, где-то я использую jQuery для добавления этого текста к некоторому элементу:

$(this).html(content); // where content is the string above

Проблема заключается в том, что он экранирован:

<p>Ok, this just &amp;amp; sucks :) &amp;ndash;</p>

Как добиться точной строки с помощью & и – а также иметь < и не < потому что мне нужны html-теги?

Изменить: добавлена ​​дополнительная информация

4b9b3361

Ответ 1

Проблема заключается не в том, что jQuery ускользает от объектов. Я думаю, если вы используете console.log для записи строки content, вы увидите, что ваш редактор возвращает вам экранированные объекты.

Вся точка .html() vs .text() заключается в том, что .html() для HTML, который будет рассматриваться как HTML.

Ответ 2

Я думаю, вы хотите, чтобы текст <p>Ok, this just &amp;amp; sucks :) &amp;ndash;</p> должен быть точно показан без преобразования, так что &amp; и ndash; не будут преобразованы в & и -, а затем используйте:

$(this).text(content);

Одна из проблем заключается в том, что content будет добавлен как текст на сайте элемента this. Он не создает элемент p и добавляет его в this.

Но если вы хотите применить эффект преобразования, тогда вы должны работать.

Еще одна вещь, которую я хочу упомянуть,. Я считаю, что язык не единственный, связанный с этим преобразованием. Браузер выполняет основную роль в этих случаях. SO, Что бы мы ни делали в script, если браузер получит еще один шанс проверить содержимое, он преобразует их в & и -.