Możesz użyć jednej funkcji do "obsługi" licznika
Przykład
<div id="counter">
<button class="substract">−</button>
<span class="count">1</span>
<button class="add">+</button>
</div>
<button class="addToBasket">Koszyk</button>
<div>
<span class="cartQuantity"></span>
<span class="totalPurchases"></span>
</div>
const substractBtn = document.querySelector('.substract'),
counter = document.querySelector('.count'),
addBtn = document.querySelector('.add'),
totalPurchases = document.querySelector('.totalPurchases'),
cartQuantity = document.querySelector('.cartQuantity'),
addToBasket = document.querySelector('.addToBasket');
const countLimit = {
min: 1,
max: 10
}
const totalPLN = 1278;
addBtn.addEventListener('click', () => {
updateCounter(1);
});
substractBtn.addEventListener('click', () => {
updateCounter(0);
});
function updateCounter(action) {
let count = parseInt(counter.textContent);
// 0 (false) - odjąć, 1 (true) - dodać
action ? count++ : count--;
if (count >= countLimit.min && count <= countLimit.max)
counter.textContent = count;
}
addToBasket.addEventListener("click", (e) => {
const currentCount = parseInt(counter.textContent);
let sum = parseInt(cartQuantity.textContent) || 0;
sum += currentCount;
totalPurchases.innerText = parseFloat(totalPLN * sum) + " zł";
cartQuantity.innerText = sum;
});