Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не могу создать нужное количество объектов с помощью цикла while (https://javascript.ru/forum/events/79396-ne-mogu-sozdat-nuzhnoe-kolichestvo-obektov-s-pomoshhyu-cikla-while.html)

andrey44 02.02.2020 13:05

Не могу создать нужное количество объектов с помощью цикла while
 
Столкнулся с такой проблемой, что не могу создать нужное количество жизней с помощью цикла while. Выдаёт ошибку (превышен максимальный размер стека вызовов). Менял код много раз, но безрезультатно. Буду очень благодарен любой помощи.

// код html: <div id="lifes"><span></span><span></span><span></span></div>
 
// функция создания жизней
function createLifes() {
  // создаём блок div
  var lifes = document.createElement("div");
 
  // добавляем тегу div => id="lifes"
  lifes.id = "lifes";
 
  // в lifesNum добавляем тег span
  var lifesNum = document.createElement("span");
 
  // текущее количество жизней
  var lifesCurrentNum = 0;
 
  // количество жизней, которое я хочу сделать
  lifesNum = 3;
 
  while(lifesCurrentNum < lifesNum) {
    createLifes();
    lifesCurrentNum++;
  };
 
  lifes.style.display = "block";
 
  // добавляем в тег div тег span
  lifes.appendChild(lifesNum);
 // добавляем элемент жизни в игровое поле <div id="igra"></div>
  igraPole.appendChild(lifes);
}

рони 02.02.2020 14:07

andrey44,
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div{
      counter-reset: n 0;
  }

  span:after{
      counter-increment: n 1;
      content: "span" counter(n);
  }

  </style>
</head>
<body>
<div id="igraPole"></div>
<script>
// код html: <div id="lifes"><span></span><span></span><span></span></div>
// функция создания жизней
function createLifes() {
  // создаём блок div
  var lifes = document.createElement("div");
  // добавляем тегу div => id="lifes"
  lifes.id = "lifes";
  // текущее количество жизней
  var lifesCurrentNum = 0;
  // количество жизней, которое я хочу сделать
  var lifesNum = 3;
  while(lifesCurrentNum < lifesNum) {
    // в lifesNum добавляем тег span
    var span = document.createElement("span");
    // добавляем в тег div тег span
    lifes.appendChild(span);
    lifesCurrentNum++;
  };
 // lifes.style.display = "block";
 // добавляем элемент жизни в игровое поле <div id="igra"></div>
  igraPole.appendChild(lifes);
}
createLifes()
  </script>
</body>
</html>


Часовой пояс GMT +3, время: 17:33.