javascript - 单击按钮 2 时如何从按钮 1 中删除类 - Vanilla JS
问题描述
我正在尝试在 Button 1 上制作高亮效果(带有 css 类的粗体和蓝色文本)。但是,当我单击菜单中的另一个按钮时,当然应该从按钮 1 中删除该类。
let buttons = document.querySelectorAll(".ef-button");
for (let i = 0; i < buttons.length; i++) {
buttons[i].addEventListener("click", function () {
if (buttons[i].classList.contains("active-element")) {
buttons[i].classList.remove("active-element");
} else {
buttons[i].classList.add("active-element");
}
})
}
这就是我写的。我可以单击每个按钮以突出显示它,但是当我单击另一个按钮时,它不会从第一个按钮中删除类...无论如何,我可以单击已突出显示的按钮再次删除类。
我需要的是一个“重置”,它从我点击的按钮中删除类。
当我点击按钮时:
解决方案
这种方式:
对于那些想要避免在 MDN Doc1 中搜索的人
document
.querySelectorAll('.ef-button')
.forEach( (btClickEv,_,buttons) =>
{
btClickEv.onclick = () =>
buttons.forEach(bt=>bt.classList.toggle('active-element',bt===btClickEv))
})
.ef-button { background : pink; }
.active-element { background : green; }
<button class="ef-button"> bt1 </button>
<button class="ef-button"> bt2 </button>
<button class="ef-button"> bt3 </button>
<button class="ef-button"> bt4 </button>
<button class="ef-button"> bt4 </button>
推荐阅读
- google-chrome - Google Chrome Extension Review Time process
- tensorflow - 验证数据集是否在训练过程中的每个时期都初始化/创建?
- c - 句子中按字母排序的单词排序(C语言)
- angular - 使用角度导航时,在新选项卡中打开链接未在新选项卡中打开
- angular - Angular 9 - Firebase 和 Cloud Firestore 的后端
- python - 接受文件输入时,外部嵌套循环不起作用
- mysql - diesel_cli 设置返回有关 DATABASE_URL 的错误
- c - 具有两个参数的递归函数的数据结构,其中一个是大的,另一个是小的
- pandas - 按字段填充先前的值 - Pandas 应用函数填充无
- python-3.x - 获取产生计算最大值的列表的值