Вам нужно определить output
, так как в настоящее время он не определен. Сделайте это так:
const output = document.querySelector("[data-output]");
И тогда вы должны обращаться с ним как с элементом, а не как со строкой. То же самое и с переменной number
: это не строка (и не число), а элемент кнопки. Поэтому прочтите и добавьте контент, используя свойство textContent
для обоих задействованных элементов:
output.textContent += number.textContent;
NB: у вас есть ошибка в вашей первой строке. Требуется закрытие ]
в селекторе:
const numbers = document.querySelectorAll("[data-number]");
Код:
const output = document.querySelector("[data-output]");
const numbers = document.querySelectorAll("[data-number]");
numbers.forEach(number => {
number.addEventListener("click", () => {
output.textContent += number.textContent;
})
})
<div>
<div data-output></div>
<button data-clear>C</button>
<button data-operator>/</button>
<button data-number>7</button>
<button data-number>8</button>
<button data-number>9</button>
<button data-operator>*</button>
<button data-number>4</button>
<button data-number>5</button>
<button data-number>6</button>
<button data-operator>-</button>
<button data-number>1</button>
<button data-number>2</button>
<button data-number>3</button>
<button data-operator>+</button>
<button data-number>0</button>
<button data-number>.</button>
<button data-equals>=</button>
</div>