Как реализовать несколько независимых степперов?

Как сделать так чтобы счетчик изменялся непосредственно тот на который кликаешь, а не только первый.

<div class="count-row">
								<div class="count-wrapper">
									<div class="count-minus _icon-minus"></div>
									<div class="count"><span class="counter">0</span></div>
									<div class="count-plus _icon-plus"></i></div>
								</div>
								<div class="count-wrapper">
									<div class="count-minus _icon-minus"></div>
									<div class="count"><span class="counter">0</span></div>
									<div class="count-plus _icon-plus"></i></div>
								</div>
							</div>

const countWrapper = document.querySelector('.count-row');
const minusCount = document.querySelector('.count-minus');
const plusCount = document.querySelector('.count-plus');
let thisCount = document.querySelector('.count');
let counter = document.querySelector('.counter');

counter = 0;

countWrapper.addEventListener("click", (e) => {
	if (e.target === plusCount) {
		counter++;
	} else if (e.target === minusCount && counter !== 0) {
		counter--;
	}
	thisCount.innerHTML = counter;
});

62a332ea34997196426369.png
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
document.querySelectorAll('.count-wrapper').forEach((wrapper) => {
    const minusButton = wrapper.querySelector('.count-minus');
    const plusButton = wrapper.querySelector('.count-plus');
    const counterElement = wrapper.querySelector('.counter');

    if (!minusButton || !plusButton || !counterElement) {
        return;
    }

    let counter = Number(counterElement.textContent.trim()) || 0;

    minusButton.addEventListener('click', (event) => {
        event.preventDefault();
        if (counter > 0) {
            counter--;
        }
        counterElement.textContent = counter;
    });

    plusButton.addEventListener('click', (event) => {
        event.preventDefault();
        counter++;
        counterElement.textContent = counter;
    });
});
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы