我正在尝试onclick
使用JavaScript将事件应用于以下元素:
<div class="abc">first</div>
<div class="abc">second</div>
<div class="abc">third</div>
如果单击第一个元素(索引为[0]),则此方法有效,但是我需要适用于所有类的事件:
document.getElementsByClassName('abc')[0].onclick="function(){fun1();}";
function fun1(){
document.getElementsByClassName('abc').style.color="red";
}
为了扩展@rock star提供的解决方案,我在函数中添加了两个小的补充。首先,比直接将样式规则应用于元素,最好向元素添加/删除类(具有关联的样式规则)。
其次-在click事件上-现在这将从先前选择的元素中删除红色类(并因此删除样式),并将其添加到新元素中。这将一次只允许一个元素变为红色(在原始解决方案中,任何被单击的元素都将变为红色)。
var els = document.getElementsByClassName('abc');
for (var i = 0; i < els.length; i++) {
els[i].onclick = fun1;
}
function fun1() {
var oldLink = document.getElementsByClassName('red')[0];
if(oldLink) {oldLink.classList.remove('red')};
this.classList.add('red');
}
.red {
color:red;
}
<div class="abc">first</div>
<div class="abc">second</div>
<div class="abc">third</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句