С вашим механизмом JS / DOM вызов Element.appendChild
с string
в качестве аргумента приводит к созданию и добавлению нового узла Text
.
Ваш первый пример создает элемент <div>
,Ваш второй пример создает текстовый узел с <div></div>
в качестве его содержимого.
Ваш второй пример эквивалентен:
var div = '<div></div>';
document.getElementById('container').appendChild(document.createTextNode(div));//output -> <div></div>
As Сарфраз Ахмед, упомянутый в его ответе Вы можете заставить второй пример работать так, как вы хотите, чтобы он работал, написав:
var div = '<div></div>';
document.getElementById('container').innerHTML = div;