利用JavaScript實現(xiàn)簡單全選和全不選的思路和方法
一、思路
我們要做到,選擇了全選按鈕,讓下面的所有的按鈕都要勾取。 實現(xiàn)的思路是,全選的按鈕是否勾取,勾取后通過for循環(huán)來得到每一個按鈕,賦值上全選按鈕的勾取狀態(tài)。
展示效果1:
有了全選按鈕,實現(xiàn)其他按鈕的勾取,我們也要實現(xiàn),主動勾取完了所有按鈕,全選按鈕要自動勾取,反之沒有勾取完,全選按鈕不處于勾取狀態(tài) 效果展示2:
二、實現(xiàn)效果
1.h5的布局
主要由復(fù)選框構(gòu)造一個全選按鈕,在使用ul設(shè)置其他的選擇按鈕 復(fù)選框:checkbox
css的布局 簡單的刪除li前面的默認(rèn)樣式。
<style> li{ list-style: none; } </style>
<input type="checkbox" id="selectAll">我的愛好 <ul class="ckboxs"> <li><input type="checkbox">唱歌</li> <li><input type="checkbox">打球</li> <li><input type="checkbox">跳舞</li> <li><input type="checkbox">跑步</li> <li><input type="checkbox">畫畫</li> </ul>
2.js代碼
1.獲取元素
let selectAll = document.querySelector('#selectAll'); let ckboxs = document.querySelectorAll('.ckboxs input');
2.獲取全選,通過循環(huán)將選擇按鈕都賦上選擇狀態(tài)
selectAll.onclick=function(){ // 全選按鈕的狀態(tài) let state = selectAll.checked; //循環(huán)每一個ckboxs,為全選狀態(tài) for(let i=0;i<ckboxs.length;i++){ ckboxs[i].checked=state; }
3.設(shè)置,選擇按鈕全勾選后,全選按鈕自動勾取,反之則取消勾取
for(let i=0;i<ckboxs.length;i++){ ckboxs[i].onclick=function(){ //默認(rèn)都勾取 let flag = true; for(j=0;j<ckboxs.length;j++){ if(ckboxs[j].checked==false){ //如果checked如果有一個沒選上就是false flag=false; } } selectAll.checked=flag; } }
附:JavaScript實現(xiàn)全選、不選、反選功能完整實例
點擊全選按鈕,下面的列表項會被全部選擇;
點擊不選按鈕,選項全部取消選擇;
先在列表中選擇幾項,再點擊反選按鈕,之前被選擇的會取消選擇,之前沒被選擇的會變成選擇狀態(tài)。
下面是實現(xiàn)代碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hh</title> <script type="text/javascript"> ? ? window.onload=function(){ ? ? ? ? var oBtn1=document.getElementById('btn1'); ? ? ? ? var oBtn2=document.getElementById('btn2'); ? ? ? ? var oBtn3=document.getElementById('btn3'); ? ? ? ? var oDiv=document.getElementById('div1'); ? ? ? ? var oCh=oDiv.getElementsByTagName('input'); ? ? ? ? oBtn1.onclick=function() ? ? ? ? { ? ? ? ? ? ? for (var i = 0; i < oCh.length; i++)? ? ? ? ? ? ? { ? ? ? ? ? ? oCh[i].checked=true; ? ? ? ? ? ? } ? ? ? ? ?? ? ? ? ? }; ? ? ? ? oBtn2.onclick=function() ? ? ? ? { ? ? ? ? ? ? for (var i = 0; i < oCh.length; i++)? ? ? ? ? ? ? { ? ? ? ? ? ? oCh[i].checked=false; ? ? ? ? ? ? } ? ? ? ? ?? ? ? ? ? }; ? ? ? ? oBtn3.onclick=function() ? ? ? ? { ? ? ? ? ? ? for (var i = 0; i < oCh.length; i++)? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? if (oCh[i].checked==true) ? ? ? ? ? ? ? ? ? ? oCh[i].checked=false; ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? ? ? oCh[i].checked=true; ? ? ? ? ? ? } ? ? ? ? ?? ? ? ? ? }; ? ? }; </script> </head> <body> <input id="btn1" type="button" value="全選"> <input id="btn2" type="button" value="不選"> <input id="btn3" type="button" value="反選"><br> <div id="div1"> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> <input type="checkbox" ><br> </div> </body> </html>
總結(jié)
到此這篇關(guān)于利用JavaScript實現(xiàn)簡單全選和全不選的思路和方法的文章就介紹到這了,更多相關(guān)JS實現(xiàn)全選和全不選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 網(wǎng)頁中實現(xiàn)一個計算當(dāng)年還剩多少時間的倒數(shù)計時程序
這篇文章主要介紹了JavaScript 網(wǎng)頁中實現(xiàn)一個計算當(dāng)年還剩多少時間的倒數(shù)計時程序,需要的朋友可以參考下2017-01-01JS 學(xué)習(xí)總結(jié)之正則表達(dá)式的懶惰性和貪婪性
這篇文章主要介紹了JS 學(xué)習(xí)總結(jié)之正則表達(dá)式的懶惰性和貪婪性的相關(guān)資料,需要的朋友可以參考下2017-07-07JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情代碼實例
這篇文章主要介紹了JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情,通過js代碼if語句進(jìn)行判斷,并結(jié)合自己開發(fā)的情景,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08webpack-bundle-analyzer?插件配置使用方法
webpack-bundle-analyzer?是?webpack?的插件,需要配合?webpack?和?webpack-cli?一起使用,這篇文章主要介紹了webpack-bundle-analyzer?插件配置,需要的朋友可以參考下2023-02-02JavaScript仿小米商城官網(wǎng)完整頁面實現(xiàn)流程
只能看不能玩的靜態(tài)頁面早就看夠了吧,今天我們來做一個相對完整的動態(tài)網(wǎng)站,用Javascript來實現(xiàn)模仿小米的官網(wǎng)商城,感興趣的朋友快來看看吧2021-11-11JavaScript 錯誤處理與調(diào)試經(jīng)驗總結(jié)
在Web開發(fā)過程中,編寫JavaScript程序時或多或少會遇到各種各樣的錯誤,有語法錯誤,邏輯錯誤。如果是一小段代碼,可以通過仔細(xì)檢查來排除錯誤,但如果程序稍微復(fù)雜點,調(diào)試JS便成為一個令Web開發(fā)者很頭痛的問題。2010-08-08JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】
這篇文章主要介紹了JS函數(shù)動態(tài)傳遞參數(shù)的方法,結(jié)合實例形式分析了javascript通過arguments對象獲取傳遞參數(shù)的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06