开发者问题收集

添加 querySelectorAll 以向按钮添加类

2022-05-27
1318

我在使用 Javascript 向按钮添加类时遇到了困难。

上下文:我有多张 instragram 类型格式的卡片,上面有一个帖子和一个“赞”按钮。我想添加一个 card__like-button 类,将图像更改为实心心形,但我记得 querySelector 仅适用于第一个元素,因此我尝试使用 querySelectorAll,但现在代码不适用于任何内容。

第一次尝试:

// Controls for active like button
let likeButton = document.querySelector(".card__like-button");
   
// Event listener for like button click
likeButton.addEventListener("click", likeButtonClick);
    
// Add class on button click
function likeButtonClick() {
likeButton.classList.toggle("card__like-button_active");
    }

第二次尝试

// Controls for active like button
let likeButton = document.querySelectorAll(".card__like-button");

// Event listener for like button click
likeButton.addEventListener("click", likeButtonClick);

// Add class on button click
function likeButtonClick() {
  likeButton.classList.toggle("card__like-button_active");
}

我创建了以下 codepen 来复制该问题。

我已经在网站、w3schools 文档等处进行了搜索,但似乎找不到我做错了什么。

2个回答

尝试一下:

let likeButtons = document.querySelectorAll(".card__like-button");
Array.from(likeButtons).forEach(ele => {
    ele.addEventListener("click", likeButtonClick);
});
// Add class on button click
function likeButtonClick() {
  this.classList.toggle("card__like-button_active");
}
Xupitan
2022-05-27
document.querySelectorAll(".card__like-button").forEach(ele => {
    ele.addEventListener("click", likeButtonClick);
});

// Add class on button click
function likeButtonClick() {
  this.classList.toggle("card__like-button_active");
}
Le Do
2022-05-27