一.排他思想在Tab栏效果切换比较常见,还有就是点击按钮的时候,步骤如下
1.点击之前先清空所有的样式,
2.在给当前元素设置样式,
3.主要顺序是不能颠倒的,因为它是从上往下执行的 先干掉所有人 ,然后只留下自己设置样式
总结就是:先把原先的所有样式去掉,在设置当前的样式
注意点:1.事件不点击是不执行事件函数的,他只是给每一个对象添加了点击事件2.事件函数里面如果出现了计数器i就会报错因为那时候计数器i早都已经循环结束完毕了系统就会报错无法设置样式
直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>按钮</button>
<button>按钮</button>
<button>按钮</button>
<button>按钮</button>
<button>按钮</button>
<script>
// 1.获取元素
var btn = document.getElementsByTagName('button')
// 2.每一个按钮都要绑定事件
for (var i = 0; i < btn.length; i++) {
btn[i].onclick = function() {
// 3.点击前先把每一个按钮设置为无色
for (var i = 0; i < btn.length; i++) {
btn[i].style.backgroundColor = '';
}
// 4.在添加样式 为红色
//for循环对多个对象添加事件的时候记住,当时for循环只是添加了监听事件,而事件回调函数是不会去执行的事件回调函数当中的代码是在事件发生的一刹那执行的,但是此时,for循环里面的计数器i早都已经执行完毕了,所以在事件函数当中只要出现了循环变量就肯定报错 所以这里只能是用this,this代表的是指向当前的事件对象
//如果写成 btn[i].style.backgroundColor = 'red';必定报错,因为i都已经结束了
this.style.backgroundColor = 'red';
}
}
</script>
</body>
</html>