javascript - 如何区分具有相同类名的按钮
问题描述
再会!我对前端开发非常陌生,作为作业的一部分,我必须使用纯 HTML、CSS 和 JavaScript 来制作下一件事:具有相同类名的 6 个按钮(喜欢)。对于一个没有被点击的和一个被点击的,我有不同的背景图片。相反,在 Demo 中background-color
,我猜没关系。
let pageCont = document.querySelector(`.page`);
let mainCont = pageCont.querySelector(`.container`);
let tableCont = mainCont.querySelector(`.table`);
let tableElem = tableCont.querySelector(`.table__element`);
let elemCont = tableElem.querySelector(`.table__text-container`);
var likeIcon = elemCont.querySelectorAll(`.table__like-icon`);
for (var i = 0; i < likeIcon.length; i++) {
likeIcon[i].addEventListener('onclick', function likeIconIsClicked()
{
likeIcon.classList.toggle(`table__like-icon_active`);
}
);
}
这个想法是改变 button(table__like-icon --> table__like-icon_acitve) 属性。如果我使用var likeIcon = elemCont.querySelector(`.table__like-icon`)
而不是querySelectorAll
,我将只能更改不正确的第一个找到的按钮。所以我使用了在 StackOverflow 上找到的代码并尝试使用它。没有工作太多。这是演示 http://jsfiddle.net/gasparilla/9cL7ua4r/11/
有人可以帮我吗?
解决方案
This
关键字,指定函数的调用者,在本例中是用户单击的按钮。This
从那里开始,您可以使用关键字更改元素的属性。
这是一个快速参考:https ://www.w3schools.com/js/js_this.asp
var likeIcon = document.querySelectorAll(`.table__like-icon`);
for (var icon of likeIcon) {
icon.addEventListener('click', likeIconIsClicked);
}
function likeIconIsClicked() {
this.classList.toggle(`table__like-icon_active`);
}
.table__like-icon_active {
background-color: blue!important;
}
.table__like-icon {
background: red;
height: 50px;
width: 50px;
//your custom class including background-image: ,...
}
<button class="table__like-icon" type="button"></button>
<button class="table__like-icon" type="button"></button>
<button class="table__like-icon" type="button"></button>
推荐阅读
- android - Microsoft Outlook Android 的 URL 架构
- php - 与 mysql 的连接未关闭($conn->close 似乎不起作用)
- python - 在 pyspark 数据框中获取移动均值
- java - 如果 DRL 文件中的规则超过 10 个,则 Drools 部署失败
- php - 从同一个 WordPress 数据库中的表中获取所有相关数据
- javascript - 使用 Vue.js 在测试中查找数据属性
- command-line - (MiniZinc) 无法识别的选项 `--solver'
- java - 使用 Jackson 将包含模式和数据的 XML 转换为 java 对象
- python - Python中的可编辑组合框
- c++ - Objective-C++ 不能在枚举块中使用向量 push_back