前言
下面所讲的概念只是简单让大家在脑海中有一个基本的概念,如果哪里有误,或者理解不了,也欢迎朋友们指正或讨论。
正文
我们通常在浏览网页的时候,会出现多个按钮同时存在的情况,需要添加鼠标事件,如鼠标点击,鼠标经过,鼠标划走等,用来进行页面的一些视觉效果。
但是,总不能将所有的按钮都进行一个事件的添加吧。所以,为了偷懒,我们就可以使用for循环来进行简化
例子
这里我们写一个点击按钮的事件,点击的按钮变成粉色,其他均不变色。PINK
利用了排他算法:(干掉所有人,复活选中的)
1.所有元素全部清除样式
2.给当前元素设置样式
3.注意顺序不能颠倒,首先要把所有干掉,再设置。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<button>按钮4</button>
<button>按钮5</button>
</body>
</html>
JS:
<script>
// 获取到所有按钮元素
//不建议使用TagName,这里使用是懒虫上身,Id是一种好的选择
var btns = document.getElementsByTagName('button');
// btns得到的是伪数组 里面的每一个元素 btns[i]
for (var i = 0; i < btns.length; i++) {///循环一遍,将所有的按钮都添加到事件
btns[i].onclick = function() {
// 先去除所有人的颜色 即干掉所有人
for (var i = 0; i < btns.length; i++) {
btns[i].style.backgroundColor = '';
}
// 然后设当前元素的背景颜色为pink 即留下我自己
this.style.backgroundColor = 'pink';///this指向调用点击事件的那个按钮
}
}
</script>
一些心得
我个人是这样认为的,任何一种代码,都是为了实现某种功能而使用的,是先提出需求(别讲没有需求,没有需求就去创造需求),再根据需求使用代码求解。没有最完美只有更完美,这才是我们程序员所要追求的目标吧