Создание html элемента в js

Мне нужно создать div в div'е с помощью js. Но вместо этого получается лишь '[object HTMLDivElement]' внутри div'а

Код, который я имею:

const container = document.querySelector('.block2');

const div = document.createElement('div');
div.classList.add('item');
div.innerHTML = document.createElement('div');

container.append(div);
<div class="block2"></div>


Ответы (1 шт):

Автор решения: EzioMercer

Проблема в том, что document.createElement возвращает Element, а это - объект

У вас есть много путей это сделать. Но если оставить логику вашего кода, то вам нужно достать outerHTML у созданного элемента:

const container = document.querySelector('.block2');

const div = document.createElement('div');
div.classList.add('item');
div.innerHTML = document.createElement('div').outerHTML;

container.append(div);
div {
  border: 1px solid;
  padding: 4px;
  margin: 4px;
}

.block2 {
  background-color: red;
}

.item {
  background-color: green;
}
<div class="block2"></div>

Но будет лучше использовать метод append:

const container = document.querySelector('.block2');

const div = document.createElement('div');
div.classList.add('item');
div.append(document.createElement('div'));

container.append(div);
div {
  border: 1px solid;
  padding: 4px;
  margin: 4px;
}

.block2 {
  background-color: red;
}

.item {
  background-color: green;
}
<div class="block2"></div>

→ Ссылка