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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 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)文章
JS動態(tài)修改表格cellPadding和cellSpacing的方法
這篇文章主要介紹了JS動態(tài)修改表格cellPadding和cellSpacing的方法,涉及javascript操作cellPadding和cellSpacing屬性的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03js完美解決IE6不支持position:fixed的bug
關(guān)于IE6,雖然它已被微軟拋棄很久了,但是由于大天朝的特殊行情(盜版)對于前端工程師來說,解決IE6兼容position:fixed的問題顯得很重要。特別是你需要用到頭尾懸停調(diào)用的時候2015-04-04