Переиспользование счетчика
Всем привет! Возникла такая проблема, я создал счетчик при помощи input, стилизовал и добавил js, добавил его нужным элементом, но при изменение значений в одном счетчике, меняется везде. Как мне переиспользование счетчик, но при этом не создавать куча счетчиков в js. Ниже код счетчика
const myInput = document.querySelector(".counter__input");
function stepper(btn){
let id = btn.getAttribute("id");
let min = myInput.getAttribute("min");
let max = myInput.getAttribute("max");
let step = myInput.getAttribute("step");
let val = myInput.getAttribute("value");
let calcStep = (id == "counter-increment") ? (step*1) : (step * -1);
let newValue = parseInt(val) + calcStep;
if(newValue >= min && newValue <= max){
myInput.setAttribute("value", newValue);
}
}
.counter {
&__wrapper {
display: flex;
align-items: center;
padding: 9px 16px;
background: #E8E8E8;
border-radius: 15px;;
max-width: 125px;
}
input[type="number"]{
-moz-appearance: textfield;
text-align: center;
font-size: 18px;
color: #000;
max-width: 25px;
margin: 0 10px;
background: #E8E8E8;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button{
-webkit-appearance: none;
margin: 0;
}
&__btn--plus {
padding-right: 10px;
border-right: 1px solid #A8A8A8;
height: 32px
}
&__btn--minus {
padding-left: 10px;
border-left: 1px solid #A8A8A8;
height: 32px
}
}
<div class="counter">
<div class="counter__wrapper">
<button class="counter__btn--plus"><img src="/images/cart/minus.svg" alt="minus"></button>
<input type="number" min="0" max="100" step="1" value="1" class="counter__input" readonly>
<button class="counter__btn--minus" id="counter-increment"><img src="/images/cart/plus.svg" alt="plus"></button>
</div>
</div>
Источник: Stack Overflow на русском