算法
全部元素所有清除樣式(幹掉其餘人)數組
給當前元素設置樣式 (留下我本身)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>