Здравствуйте!
Есть такой див-элемент (счетчик товара):
<div class="input-group quantity_goods">
<input type="button" value="-" id="button_minus" class="minus">
<input type="number" step="1" min="1" max="10" id="num_count" class="count" name="quantity" value="1" title="Qty">
<input type="button" value="+" id="button_plus" class="plus">
</div>
И к нему скрипт:
var numCount = document.getElementsByClassName('count');
var plusBtn = document.getElementsByClassName('plus');
var minusBtn = document.getElementsByClassName('minus');
plusBtn.onclick = function() {
var qty = parseInt(numCount.value);
qty = qty + 1;
numCount.value = qty;}
minusBtn.onclick = function() {
var qty = parseInt(numCount.value);
qty = qty - 1;
if (qty < 1)
qty = qty + 1;
numCount.value = qty;}
Удивительным (для меня) образом этот код не срабатывает, но если поменять getElementsByClassName на getElementById с соответсвующими айдишниками, то код становится рабочим для первого счетчика. Но счетчиков предполагается несколько на странице.
Подозреваю, что я не понимаю какого-то базового принципа работы getElementsByClassName, поэтому в коде чего-то нехватает.
Пожалуйста, тыкните меня носом в ошибку, буду премного благодарна.
input-group, то у тебя таких групп может быть несколько, а значит тебе придется использовать либо querySelectorAll либо getElementsByClassName так или иначе – Алексей Шиманский Jul 26 '17 at 21:31