JS實(shí)現(xiàn)多選框的操作
本文實(shí)例為大家分享了JS實(shí)現(xiàn)多選框的具體代碼,供大家參考,具體內(nèi)容如下

多選時(shí):

全選時(shí):

反選時(shí):

html代碼
<div class="container"> <h3>請(qǐng)選擇你最喜歡吃的水果(多選)</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;
}
}
})()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- AngularJS單選框及多選框?qū)崿F(xiàn)雙向動(dòng)態(tài)綁定
- ExtJS Grid使用SimpleStore、多選框的方法
- JavaScript判斷表單中多選框checkbox選中個(gè)數(shù)的方法
- ExtJS 下拉多選框lovcombo
- javascript 單選框,多選框美化代碼
- 用原生JS實(shí)現(xiàn)簡(jiǎn)單的多選框功能
- 兼容ie和firefox版本的js反選 全選 多選框
- 用 Javascript 驗(yàn)證表單(form)中多選框(checkbox)值
- html+javascript+bootstrap實(shí)現(xiàn)層級(jí)多選框全層全選和多選功能
- AngularJS 單選框及多選框的雙向動(dòng)態(tài)綁定
相關(guān)文章
微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改view標(biāo)簽背景顏色功能示例【附demo源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊按鈕修改view標(biāo)簽背景顏色功能,涉及微信小程序事件響應(yīng)及數(shù)值運(yùn)算實(shí)現(xiàn)動(dòng)態(tài)設(shè)置view背景色樣式的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
JS實(shí)現(xiàn)可直接顯示網(wǎng)頁代碼運(yùn)行效果的HTML代碼預(yù)覽功能實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)可直接顯示網(wǎng)頁代碼運(yùn)行效果的HTML代碼預(yù)覽功能,通過獲取文本框內(nèi)容并在新窗口打印輸出來實(shí)現(xiàn)直接運(yùn)行html代碼的功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08
JS中使用textPath實(shí)現(xiàn)線條上的文字
最近項(xiàng)目經(jīng)理交給我一下新項(xiàng)目,要實(shí)現(xiàn)關(guān)系圖,需要在線條上繪制文字。下面小編把使用textPath實(shí)現(xiàn)線條上的文字功能分享到腳本之家平臺(tái)供大家參考2017-12-12
JavaScript利用正則表達(dá)式去除日期中的“-”
第一種,將日期字符串先截取,然后拼接;第二種,就是利用正則表達(dá)式去掉“-”本例選擇第二種,比較快捷不容易出錯(cuò)2014-07-07
js如何使用Pagination+PageHelper實(shí)現(xiàn)分頁
本文主要介紹了js如何使用Pagination+PageHelper實(shí)現(xiàn)分頁,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
JavaScript實(shí)現(xiàn)的簡(jiǎn)單拖拽效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的簡(jiǎn)單拖拽效果,涉及javascript針對(duì)鼠標(biāo)事件與頁面樣式的操作技巧,需要的朋友可以參考下2015-06-06
使用Nginx部署前端項(xiàng)目的詳細(xì)步驟記錄
在實(shí)際開發(fā)中我們通常會(huì)使用Nginx來部署前端靜態(tài)頁面,以提供快速訪問速度和良好的用戶體驗(yàn),這篇文章主要給大家介紹了關(guān)于使用Nginx部署前端項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2024-08-08

