Я хочу, добавляет элемент с JavaScript.
У меня есть следующий код:
var collection = document.getElementsByTagName('body');
var a = document.createElement('div');
a.innerHTML = 'some text';
collection.item(0).firstChild.appendChild(a);
и простой HTML:
<html>
<head></head>
<body>
</body>
</html>
Где ошибка?
Это должно сделать то, что вы ищете:
var newdiv = document.createElement ("div") ; newdiv.appendChild (document.createTextNode ("какой-то текст")); document.body.appendChild (newdiv);
Сначала вы создаете элемент с помощью document.createElement
. Чтобы установить его текстовое содержимое, у вас должен быть «текстовый узел», охватывающий ваш текст. Итак, вы сначала создаете такой текстовый узел, а затем добавляете его как (единственный) дочерний элемент к вашему новому объекту.
Затем добавьте вновь созданный элемент DIV в структуру DOM. Вам не нужно искать элемент BODY с помощью getElementsByTagName ()
, поскольку он существует как свойство объекта document
.
Ваш код не работает, потому что в то время, когда вы пытаетесь вставить этот новый div, тег body пуст, и поэтому нет firstChild, чтобы добавить что-либо в . Измените вашу последнюю строку на:
collection.item(0).appendChild(a);