Добавление HTML-кодированной строки как HTML, а не как текст
Я пытаюсь добавить эту строку:
<div> hello </div>
как HTML node, но вместо добавления HTML он просто добавляет текст:
<div> hello </div>
Как сделать jQuery append это как HTML node, а не только текст?
Мне нужно решение, которое работает как для вложенных divs AND text, если это возможно.
Ответы
Ответ 1
// This is your string :)
var myString = "<div> hello </div>";
// This is a way to "htmlDecode" your string... see link below for details.
myString = $("<div />").html(myString).text();
// This is appending the html code to your div (which you don't have an ID for :P)
$("#TheDivIWantToChange").append(myString);
HTML-кодирование потеряно, если атрибут прочитан из поля ввода
Ответ 2
Вы можете создать новый div с .createElement('div')
. Затем просто измените новый элемент HTML.
$(document.createElement('div').html('<p>All new content.</p>'));
Чтобы прикрепить новый элемент к DOM, используйте element.append()
или .appendTo(element)
для добавления к выбранному элементу.
Ответ 3
Возможно, это немного многословно, но обычно это так, как я обрабатываю такие вещи:
var div = $(document.createElement("div"));
div.text(" hello "); //Or div.html(" hello ") if need be...
$("#divtoappendto").append(div);