Включая ваш оператор let
вне вашей функции, вы устанавливаете nums
сразу после загрузки скрипта. В настоящее время невозможно, чтобы поле, из которого вы пытаетесь извлечь значение int
, имело значение, поскольку у пользователя еще не было достаточно времени для ввода данных.
Переместите let
оператор в вашу функцию, чтобы он собирал значение вашего поля ввода при запуске функции (и поле якобы заполняется пользователем).
function assign() {
let nums = parseInt(document.querySelector('.num').value);
for (i = 0; i < nums; i++) {
let box = document.createElement('div');
box.classList.add('boxList');
box.innerHTML = `<div>Group ${nums[i]}</div>`;
document.body.appendChild(box);
}
}
.boxList {
border: 1px solid red;
padding: 10px;
}
<input type="number" class="num" placeholder="enter num of groups">
<input type="button" id="assign" onclick="assign()" value="Assign">