0

Здравствуйте!

Есть такой див-элемент (счетчик товара):

    <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, поэтому в коде чего-то нехватает.

Пожалуйста, тыкните меня носом в ошибку, буду премного благодарна.

  • классика жанра. + еще https://ru.stackoverflow.com/q/637915/191482 и в целом поиск https://ru.stackoverflow.com/search?q=getElementsByClassName ......... но суть должна быть понятна из ссылки на дубликат – Алексей Шиманский Jul 26 '17 at 21:16
  • @АлексейШиманский? спасибо, теперь всё понятно) Я вообще неправильно понимала для себя что возвращает getElementsByClassName. На самом деле мне нужен был querySelector. – Gorganza Jul 26 '17 at 21:26
  • 1
    Ну если судить по диву с классом input-group, то у тебя таких групп может быть несколько, а значит тебе придется использовать либо querySelectorAll либо getElementsByClassName так или иначе – Алексей Шиманский Jul 26 '17 at 21:31

0 Answers0