我有一个选择(用于高亮显示)的类,我一次只能添加一个元素,所以每次点击一个新元素时,它都会将选中的类添加到该元素中并从任何以前点击的元素中移除选定的类 - 无论是哪个。简单的高亮显示一次只能显示一个元素功能
如果直接点击下一个/上一个元素(按钮),我只能使它工作。
如果我点击按钮1,然后例如按钮4,那么它只是不断添加类。
https://jsfiddle.net/vLkjovrv/1/
var myButtons = document.querySelectorAll('.my-button');
for (var i = 0; i < myButtons.length; i++) {
var button = myButtons[i];
button.addEventListener('click', function(event) {
this.classList.toggle("selected");
this.previousElementSibling.classList.remove("selected");
this.nextElementSibling.classList.remove("selected");
});
}
我知道为什么上面不行,我直接告诉它只是地址下一个/上,但是我一直在使用的if/else班级列表包含试过了,!这一点。 classList.contains,e.currentTarget的各种组合,但我不能让它工作。
我想我在寻找类似:
如果(任何myButtons.classList.contains( “选择”))
删除选定
其他
添加选定
我花了几个小时寻找一个香草JS解决方案,但我只能找到jQuery - 我想学习纯JavaScript。
有人可以给我一些指针吗?将不胜感激!
哇,我得到了一些伟大的答案了,我希望我能知道如何判断哪一个是“最好的”。 – Capax
@DavidWickström解决方案不是我认为最好的。 –