利用JavaScript實(shí)現(xiàn)簡單全選和全不選的思路和方法
一、思路
我們要做到,選擇了全選按鈕,讓下面的所有的按鈕都要勾取。 實(shí)現(xiàn)的思路是,全選的按鈕是否勾取,勾取后通過for循環(huán)來得到每一個(gè)按鈕,賦值上全選按鈕的勾取狀態(tài)。
展示效果1:

有了全選按鈕,實(shí)現(xiàn)其他按鈕的勾取,我們也要實(shí)現(xiàn),主動(dòng)勾取完了所有按鈕,全選按鈕要自動(dòng)勾取,反之沒有勾取完,全選按鈕不處于勾取狀態(tài) 效果展示2:

二、實(shí)現(xiàn)效果
1.h5的布局
主要由復(fù)選框構(gòu)造一個(gè)全選按鈕,在使用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)每一個(gè)ckboxs,為全選狀態(tài)
for(let i=0;i<ckboxs.length;i++){
ckboxs[i].checked=state;
}3.設(shè)置,選擇按鈕全勾選后,全選按鈕自動(dòng)勾取,反之則取消勾取
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如果有一個(gè)沒選上就是false
flag=false;
}
}
selectAll.checked=flag;
}
}附:JavaScript實(shí)現(xiàn)全選、不選、反選功能完整實(shí)例
點(diǎn)擊全選按鈕,下面的列表項(xiàng)會被全部選擇;
點(diǎn)擊不選按鈕,選項(xiàng)全部取消選擇;
先在列表中選擇幾項(xiàng),再點(diǎn)擊反選按鈕,之前被選擇的會取消選擇,之前沒被選擇的會變成選擇狀態(tài)。
下面是實(shí)現(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實(shí)現(xiàn)簡單全選和全不選的思路和方法的文章就介紹到這了,更多相關(guān)JS實(shí)現(xiàn)全選和全不選內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
json前后端數(shù)據(jù)交互相關(guān)代碼
本篇文章給大家分享了關(guān)于json前后端數(shù)據(jù)交互方法實(shí)現(xiàn)的相關(guān)知識點(diǎn)內(nèi)容,有興趣的讀者們可以參考學(xué)習(xí)下。2018-09-09
如何用js 實(shí)現(xiàn)依賴注入的思想,后端框架思想搬到前端來
這篇文章主要介紹了js 實(shí)現(xiàn)依賴注入的思想,后端框架思想搬到前端來,需要的朋友可以參考下2015-08-08
lhgcalendar時(shí)間插件限制只能選擇三個(gè)月的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猯hgcalendar時(shí)間插件限制只能選擇三個(gè)月的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
js網(wǎng)頁側(cè)邊隨頁面滾動(dòng)廣告效果實(shí)現(xiàn)
其實(shí)這個(gè)效果不是什么難實(shí)現(xiàn)的效果,關(guān)鍵注意幾個(gè)地方就可以了2011-04-04

