LenovoId
@LenovoId
svg, css,js

Как динамически создать элементы?

Я хочу, создать такое количество блоков сколько имеется ключей в массиве ..
Сделал так :
let asks = {
  "ask1": "Text №1",
  "ask2": "Text №2",
  "ask3": "Text №3",
  "ask4": "Text №4",
  "ask5": "Text №5"
};


Потом собственно создал функцию генерирующую блоки и сам цикл вот так :

function cd(className){
  var div = document.createElement('div');
  div.className = className;
  return div;
};

for (let i = 0; i < asks.length; i++) {
   document.body.appendChild(cd('elem'));
};


Но это штуковина не работает..
Тренировался здесь : https://codepen.io/topicstarter/pen/RmpqKq
Как заставить работать эту штуку ? Только не es6 please
  • Вопрос задан
  • 123 просмотра
Решения вопроса 2
hzzzzl
@hzzzzl
потому что asks это не массив, у него нет length

https://codepen.io/anon/pen/Rmpvzy

а вообще questions :p
Ответ написан
Комментировать
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Объект не массив, попробуйте так:

for (let i = 0; i < Object.keys(asks).length; i++) {
   document.body.appendChild(cd('elem'));
};


но лучше сделать массив объектов, тогда можно будет хранить и передавать различные дополнительные данные, такие как class, id, url и другие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы