Создание кнопок на чистом JS для вывода в input с помощью массива
Я сделал массив кнопок, но при нажатии на любую кнопку выводит только 0 (то есть, конечное значение в массиве), получается я сделал массив для одной кнопки, как это исправить?
const input = document.createElement('input');
input.type = 'text';
document.body.append(input);
function printBtn() {
var listBrand = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
for (var i = 0; i < listBrand.length; i++) {
var btn__1 = document.createElement("button");
var t = document.createTextNode(listBrand[i]);
btn__1.appendChild(t);
document.body.appendChild(btn__1);
btn__1.addEventListener('click', () => {
input.value += btn__1.innerText;
all = input.value.split('');
console.log(all);
});
}
}
printBtn();
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Надо написать не
var btn__1 = document.createElement("button");
а
let btn__1 = document.createElement("button");
А лучше уже давным давно забыть про var.
И почитать отличие var, let, const
Автор решения: King World
→ Ссылка
const input = document.createElement('input');
input.type = 'text';
document.body.append(input);
function printBtn() {
let listBrand = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
for (let i = 0; i < listBrand.length; i++) {
let btn__1 = document.createElement("button");
let t = document.createTextNode(listBrand[i]);
btn__1.appendChild(t);
document.body.appendChild(btn__1);
btn__1.addEventListener('click', () => {
input.value += btn__1.innerText;
all = input.value.split('');
console.log(all);
});
}
}
printBtn();