javascript - Java Script - 类名数组 - 对一个数组元素执行操作
问题描述
我有一个数组ClassName
:
Starter = document.getElementsByClassName('buttonsColor');
和 3 个按钮:
<.button class="buttonsColor" type="button"
onclick="starterMenu()";>Starter</button>
<.button class="buttonsColor" type="button" onclick="menuM()";>Main</button>
<.button class="buttonsColor" type="button"
onclick="menuDessert()";>Dessert</button>"
当我想改变这个数组中一个元素的颜色时,我必须转向它并将其索引设置为 0、1 或 2,例如在这种情况下。
我怎样才能做到这一点,以便当我点击三个按钮之一时,我会知道我点击了它,然后就可以执行更改颜色等操作?
也许用在addEventListener
?
解决方案
我怎样才能做到这一点,以便当我单击三个按钮之一时,我会知道我单击了它,然后就可以执行更改颜色等操作。
下面是有关如何绑定单击事件处理程序以及如何与单击按钮的样式进行交互的示例。它应该让您开始允许您从那里扩展。
要按类选择按钮,您可以像显示的那样选择它们:
var buttons = document.getElementsByClassName('buttonsColor');
您现在可以遍历按钮并使用addEventListener附加单击事件处理程序,类似于:
for(var i = 0;i<buttons.length;i++){
buttons[i].addEventListener('click', yourClickHandler);
}
如果您现在想要更改单击按钮的颜色,您可以通过向应用样式的按钮的classList添加一个类来实现,类似于:
var buttons = document.getElementsByClassName('buttonsColor');
var changeColor = function(){
this.classList.add('active');
};
for(var i = 0;i<buttons.length;i++){
buttons[i].addEventListener('click', changeColor);
}
.active{
background-color: red;
}
<button class="buttonsColor" type="button">Starter</button>
<button class="buttonsColor" type="button">Main</button>
<button class="buttonsColor" type="button">Dessert</button>
如果您想切换颜色,您可以使用.classList.toggle(active)
var buttons = document.getElementsByClassName('buttonsColor');
var changeColor = function(){
this.classList.toggle('active');
};
for(var i = 0;i<buttons.length;i++){
buttons[i].addEventListener('click', changeColor);
}
.active{
background-color: red;
}
<button class="buttonsColor" type="button">Starter</button>
<button class="buttonsColor" type="button">Main</button>
<button class="buttonsColor" type="button">Dessert</button>
如果您想使选择互斥,您可以通过从所有按钮中删除类来做到这一点,classList.remove(active)
并仅将其分配给单击的按钮,再次使用classList.add(active)
var buttons = document.getElementsByClassName('buttonsColor');
var changeColor = function(){
for(var i = 0;i<buttons.length;i++){
buttons[i].classList.remove('active');
}
this.classList.add('active');
};
for(var i = 0;i<buttons.length;i++){
buttons[i].addEventListener('click', changeColor);
}
.active{
background-color: red;
}
<button class="buttonsColor" type="button">Starter</button>
<button class="buttonsColor" type="button">Main</button>
<button class="buttonsColor" type="button">Dessert</button>
推荐阅读
- regex - 来自字母表 {a, b} 的正则表达式,用于查找 a 的数量大于 b 的数量的字符串
- javascript - JS 数组排序使用表达式
- sql - 将子字符串与存储的字符串列表匹配
- apache-kafka - 如何将特定 ID 分配给 Kafka 主题分区
- r - igraph:创建多个图并将网络度量值放入数据框中
- audio - Roku/Brightscript SceneGraph 播放下一个音频
- laravel - laravel 中的自定义唯一验证
- ios - IntrinsicContentSize 在 iOS 15 中有效,但在 iOS 13 和 14 中无效
- wordpress - 在 httpd 上更改 wordpress 的默认端口
- python - 在 Switch 处于活动状态时每 30 秒调用一次 python kivy 回调?