利用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-01
JS 學(xué)習(xí)總結(jié)之正則表達(dá)式的懶惰性和貪婪性
這篇文章主要介紹了JS 學(xué)習(xí)總結(jié)之正則表達(dá)式的懶惰性和貪婪性的相關(guān)資料,需要的朋友可以參考下2017-07-07
JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情代碼實例
這篇文章主要介紹了JavaScript代碼判斷輸入的字符串是否含有特殊字符和表情,通過js代碼if語句進(jìn)行判斷,并結(jié)合自己開發(fā)的情景,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08
webpack-bundle-analyzer?插件配置使用方法
webpack-bundle-analyzer?是?webpack?的插件,需要配合?webpack?和?webpack-cli?一起使用,這篇文章主要介紹了webpack-bundle-analyzer?插件配置,需要的朋友可以參考下2023-02-02
JavaScript仿小米商城官網(wǎng)完整頁面實現(xiàn)流程
只能看不能玩的靜態(tài)頁面早就看夠了吧,今天我們來做一個相對完整的動態(tài)網(wǎng)站,用Javascript來實現(xiàn)模仿小米的官網(wǎng)商城,感興趣的朋友快來看看吧2021-11-11
JavaScript 錯誤處理與調(diào)試經(jīng)驗總結(jié)
在Web開發(fā)過程中,編寫JavaScript程序時或多或少會遇到各種各樣的錯誤,有語法錯誤,邏輯錯誤。如果是一小段代碼,可以通過仔細(xì)檢查來排除錯誤,但如果程序稍微復(fù)雜點,調(diào)試JS便成為一個令Web開發(fā)者很頭痛的問題。2010-08-08
JS函數(shù)動態(tài)傳遞參數(shù)的方法分析【基于arguments對象】
這篇文章主要介紹了JS函數(shù)動態(tài)傳遞參數(shù)的方法,結(jié)合實例形式分析了javascript通過arguments對象獲取傳遞參數(shù)的相關(guān)操作技巧,需要的朋友可以參考下2019-06-06

