Я создал кнопку, которая меняет текст при нажатии. Однако действие работает только для первой кнопки на странице. Любая кнопка ниже в коде, имеющая такое же действие, не работает. Как мне изменить JS, чтобы он позволял многократно запускать событие?
Спасибо!
HTML:
<div class = "addtocart">
<a href = "#" class = "add-to-cart">
<div class = "pretext">
ADD TO CART
</div>
</a>
<div class = "pretext done">
<div class = "posttext"><i class = "fas fa-check"></i> ADDED</div>
</div>
</div>
JS:
<script>
const button = document.querySelector(".addtocart");
const done = document.querySelector(".done");
console.info(button);
let added = false;
button.addEventListener("click", () => {
if (added) {
done.style.transform = "translate(-110%) skew(-40deg)";
added = false;
} else {
done.style.transform = "translate(0px)";
added = true;
}
});
</script>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что вам нужно выбрать все элементы кнопки. Использование querySelectorAll.
Это вернет массив элементов DOM, соответствующих запросу. Затем вы перебираете и добавляете прослушиватель событий к каждому.
В приведенном выше коде выбирается первый экземпляр элемента DOM с .addtocart, а не каждый экземпляр, а затем добавляется прослушиватель событий.
Здесь - пример рабочего кода. Вам нужно использовать это ключевое слово, чтобы получить то, что вы хотите.
<div class = "addtocart">
<a href = "#" class = "add-to-cart" id = "addToCardItem1" onclick = "addToCart(this)">
<div class = "pretext">
ADD TO CART
</div>
</a>
</div>
<div class = "addtocart" id = "addToCardItem1" onclick = "addToCart(this)">
<a href = "#" class = "add-to-cart">
<div class = "pretext">
ADD TO CART
</div>
</a>
</div>
<script>
function addToCart(elem) {
alert(elem.id);
}
</script>