Как добавить элементу новый тег?

356
21 января 2018, 05:48

Начинаю учить JS. Можно ли как-то <li> добавить тег <div>?
Например: li.document.createElement('div');
Чтобы было вот так: <li><div>Hi</div></li>.

Мой код:

var li = document.createElement('li'); 
li.innerText = 'Hi';

Answer 1
  • Создание элементов осуществляется функцией document.createElement
  • Изменение поддерева элемента может быть осуществлено несколькими способами:
    • присваиванием свойству .innerHTML нужного html-кода
    • присваиванию свойству textContent нужного текста (для случаев, когда элемент не содержит вложенных элементов)
    • добавление элемента в конец списка дочерних элементов с помощью метода appendChild
  • Связанные статьи на learn.javascript.ru: Свойства узлов и Добавление и удаление узлов

Таким образом, имея элемент <li> (созданный через document.createElement, либо изначально находившийся в html, полученный методами document.getElementById/document.querySelector/document.getElementsByClassName) можно добавить к нему новый элемент <div> методом appendChild:

let li = document.createElement('li'); 
let inner = document.createElement('div'); 
inner.textContent = 'Hi'; 
li.appendChild(inner); 
 
// чтобы сниппент что-нибудь отобразил 
document.body.appendChild(li);

либо добавив нужный html-код к свойству .innerHTML:

let li = document.createElement('li'); 
li.innerHTML += '<div>Hi</div>'; 
 
// чтобы сниппент что-нибудь отобразил 
document.body.appendChild(li);

Answer 2

Можно сделать

var li = document.createElement('li');
li.innerHTML += '<div>Hi</div>';
READ ALSO
Как вставить в строку переменную JS?

Как вставить в строку переменную JS?

У меня есть вот такая вещь:

339
POST запрос HTML, данные из формы и извне

POST запрос HTML, данные из формы и извне

На html странице есть таблица, хранящая заказ клиентаКроме того, клиент вводит в форму свои данные

290