Одна строка, нет jQuery!
const values = [...document.getElementsByClassName('op')].map(op => op.value)
В основном он создает новый (реальный) массив из HTMLCollection, делая доступным метод .map (), который выполняет определенную операцию c на каждый элемент и возвращает новый массив.
Кстати, ошибка исходит из i.value
в вашем l oop. i
- это число и не имеет свойства .value
, поэтому i.value
равно undefined
, следовательно, не повторяется и не может использоваться с синтаксисом распространения.
Возможно, это то, что нужно сделать:
const htmlCollection = document.getElementsByClassName('op');
const originalValues = []
for (let i = 0; i < htmlCollection.length; i++) {
originalValues[i] = htmlCollection[i].value;
console.log(originalValues)
}