JS實現(xiàn)多選框的操作
更新時間:2020年06月24日 11:29:18 作者:AndroidCQC
這篇文章主要為大家詳細介紹了JS實現(xiàn)多選框的操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JS實現(xiàn)多選框的具體代碼,供大家參考,具體內(nèi)容如下

多選時:

全選時:

反選時:

html代碼
<div class="container"> <h3>請選擇你最喜歡吃的水果(多選)</h3> <ul> <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> <li><input type="checkbox">龍眼</li> </ul> <div class="checkinAll"> <input type="checkbox" id="checkAll">全選/非全選 <input type="checkbox" id="checkTurn">反選 </div> </div>
CSS代碼:
*{
margin: 0;
padding: 0;
}
.container{
width: 300px;
/* height: 500px; */
/* border: 1px solid black; */
margin: 10px auto;
}
.container ul{
list-style: none;
width: 100%;
margin-top: 20px;
border: 1px solid #666;
border-radius: 10px;
margin-bottom: 10px;
}
.container ul li{
width: 100%;
height: 70px;
border-bottom: 1px solid #666;
line-height: 70px;
text-indent: 50px;
font-size: 16px;
font-weight: 600;
}
.container ul li:last-child{
border-radius: 0 0 11px 11px;
border: none;
}
.container ul li:first-child{
border-radius: 11px 11px 0 0;
/* border: none; */
}
input[type='checkbox']{
width: 20px;
height: 20px;
vertical-align: middle;
cursor: pointer;
-webkit-appearance: none;
border: 1px solid #666;
border-radius: 3px;
}
input[type='checkbox']:checked{
background-image: url(./select.png);
background-repeat: no-repeat;
background-position: center center;
background-size: 100% 100%;
outline: none;
}
ul input{
margin-right: 40px;
}
JS代碼:
(function(){
const list_node = document.getElementsByTagName('li');
const ul_node = document.getElementsByTagName('ul')[0]
const colorArr = ['rgb(255,235,205)','rgb(255,240,245)','rgb(255,211,155)'];
const check_nodes = ul_node.getElementsByTagName('input');
const checkAll = document.getElementById('checkAll');
const checkTurn = document.getElementById('checkTurn')
for(let i = 0; i < list_node.length; i++){
list_node[i].style.backgroundColor = colorArr[i % colorArr.length];
list_node[i].addEventListener('click',clickFn);
}
function clickFn(e){
console.log(e.target.tagName);
let num = 0;
if(e.target.tagName == 'INPUT' && e.target.checked == false){
checkAll.checked = false;
}else{
for (let i = 0; i < check_nodes.length; i++) {
if(check_nodes[i].checked == true){
num++;
}
}
if(num == check_nodes.length){
checkAll.checked = true;
}
}
}
//全選/非全選
checkAll.onclick = function(){
if(this.checked == true){
for (let i = 0; i < check_nodes.length; i++) {
check_nodes[i].checked = true;
}
}else{
for (let i = 0; i < check_nodes.length; i++) {
check_nodes[i].checked = false;
}
}
}
//反選
checkTurn.onclick = function(){
let count = 0;
let num = 0;
for (let i = 0; i < check_nodes.length; i++) {
if(check_nodes[i].checked == true){
check_nodes[i].checked = false;
count ++;
}else{
check_nodes[i].checked = true;
num++;
}
}
if(count == check_nodes.length){
checkAll.checked = false;
}else if(num == check_nodes.length){
checkAll.checked = true;
}
}
})()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- AngularJS單選框及多選框?qū)崿F(xiàn)雙向動態(tài)綁定
- ExtJS Grid使用SimpleStore、多選框的方法
- JavaScript判斷表單中多選框checkbox選中個數(shù)的方法
- ExtJS 下拉多選框lovcombo
- javascript 單選框,多選框美化代碼
- 用原生JS實現(xiàn)簡單的多選框功能
- 兼容ie和firefox版本的js反選 全選 多選框
- 用 Javascript 驗證表單(form)中多選框(checkbox)值
- html+javascript+bootstrap實現(xiàn)層級多選框全層全選和多選功能
- AngularJS 單選框及多選框的雙向動態(tài)綁定
相關(guān)文章
微信小程序?qū)崿F(xiàn)點擊按鈕修改view標(biāo)簽背景顏色功能示例【附demo源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點擊按鈕修改view標(biāo)簽背景顏色功能,涉及微信小程序事件響應(yīng)及數(shù)值運算實現(xiàn)動態(tài)設(shè)置view背景色樣式的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
JS實現(xiàn)可直接顯示網(wǎng)頁代碼運行效果的HTML代碼預(yù)覽功能實例
這篇文章主要介紹了JS實現(xiàn)可直接顯示網(wǎng)頁代碼運行效果的HTML代碼預(yù)覽功能,通過獲取文本框內(nèi)容并在新窗口打印輸出來實現(xiàn)直接運行html代碼的功能,簡單實用,需要的朋友可以參考下2015-08-08
js如何使用Pagination+PageHelper實現(xiàn)分頁
本文主要介紹了js如何使用Pagination+PageHelper實現(xiàn)分頁,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

