Мне нужно иметь возможность добавлять элементы на страницу с исходной текстовой строкой HTML, включая любое количество тегов, атрибутов и т. Д. В идеале я хотел бы иметь возможность делать что-то вроде любой произвольной строки хорошо сформированного html;Добавить элементы в DOM для простого текста HTML, используя только чистый JavaScript (без jQuery)
var theElement = document.createElement("<h1 id='title'>Some Title</h1><span style="display:inline-block; width=100px;">Some arbitrary text</span>");
document.getElementById("body").appendChild(theElement);
Очевидно, что это не работает, я ищу хорошие способы достижения такого же результата. Я бы хотел, чтобы избежать разбора HTML, если это возможно. Я сильно ограничен инструментами, которые я могу использовать, ни один jQuery или снаружи не включает и должен быть кросс-браузерным и обратно совместимым с IE6. Любая помощь будет огромной.
Вы должны использовать [DocumentFragment] (http://ejohn.org/blog/dom-documentfragments/) вместо div; быстрее и намного легче переместить дочерние узлы. ** Редактировать **: исправить этот комментарий, поскольку вы не можете установить 'innerHTML' DocumentFragment. – Phrogz
редактирование для перехода к циклу while исправило проблему с циклом for, используя индекс, поскольку appendChild фактически удаляет элемент из div, чтобы добавить его в тело. Клонирование дочернего узла - менее элегантный способ сделать это. – kirps
@kirps: да, я, наконец, протестировал этот образец кода и обнаружил нечетное поведение «appendChild» и его влияние на атрибут «children» содержащего родительского элемента. – maerics