算法
全部元素所有清除样式(干掉其余人)数组
给当前元素设置样式 (留下我本身)this
注意顺序不能颠倒,首先干掉其余人,再设置本身url
<button>按钮1</button> <button>按钮2</button> <button>按钮3</button> <button>按钮4</button> <button>按钮5</button> <script> // 1. 获取全部按钮元素 var btns = document.getElementsByTagName('button'); // btns获得的是伪数组 里面的每个元素 btns[i] for (var i = 0; i < btns.length; i++) { btns[i].onclick = function() { // (1) 咱们先把全部的按钮背景颜色去掉 干掉全部人 for (var i = 0; i < btns.length; i++) { btns[i].style.backgroundColor = ''; } // (2) 而后才让当前的元素背景颜色为purple 留下我本身 this.style.backgroundColor = 'purple'; } } </script>
案例分析spa
code
blog
seo
事件
<style> * { padding: 0; margin: 0; } body { background: url(images/1.jpg) no-repeat center; } .baidu { width: 410px; height: 100px; margin: 150px auto; background-color: #fff; } .baidu li { float: left; list-style: none; width: 100px; height: 98px; margin: 0 1px; } .baidu li img { width: 100%; height: 100%; } </style> <body> <ul class="baidu"> <li><img src="images/1.jpg" alt="" /></li> <li><img src="images/2.jpg" alt="" /></li> <li><img src="images/3.jpg" alt="" /></li> <li><img src="images/4.jpg" alt="" /></li> </ul> <script> // 1. 获取元素 var imgs = document.querySelector(".baidu").querySelectorAll("img"); // 2.注册循环事件 for (var i = 0; i < imgs.length; i++) { imgs[i].onclick = function () { document.body.style.backgroundImage = "url(" + this.src + ")"; }; } </script> </body>
案例分析图片
① 用到新的鼠标事件 鼠标通过 onmouseover 鼠标离开 onmouseout
② 核心思路:鼠标通过 tr 行,当前的行变背景颜色, 鼠标离开去掉当前的背景颜色
③ 注意: 第一行(thead里面的行)不须要变换颜色,所以咱们获取的是 tbody 里面的行
<script> // 1. 获取元素 var tb = document.querySelector("tbody").querySelectorAll("tr"); // 2.利用循环绑定注册事件 for (var i = 0; i < tb.length; i++) { // 3.鼠标通过 tb[i].onmouseover = function () { this.className = "bg"; }; // 4. 鼠标离开 tb[i].onmouseout = function () { this.className = ""; }; } </script>
案例分析
① 全选和取消全选作法: 让下面全部复选框的checked属性(选中状态) 跟随 全选按钮便可
② 下面复选框须要所有选中, 上面全选才能选中作法: 给下面全部复选框绑定点击事件,每次点击,都 要循环查看下面全部的复选框是否有没选中的,若是有一个没选中的, 上面全选就不选中。
③ 能够设置一个变量,来控制全选是否选中
<script> // 获取元素 var j_cbAll = document.getElementById("j_cbAll"); var j_tbs = document.getElementById("j_tb").getElementsByTagName("input"); j_cbAll.onclick = function () { for (var i = 0; i < j_tbs.length; i++) { j_tbs[i].checked = this.checked; } }; for (var i = 0; i < j_tbs.length; i++) { j_tbs[i].onclick = function () { var flag = true; for (var i = 0; i < j_tbs.length; i++) { if (!j_tbs[i].checked) { flag = false; } } j_cbAll.checked = flag; }; } </script>