欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實(shí)現(xiàn)多選框的操作

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

本文實(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用戶點(diǎn)擊后退按鈕使效三行代碼

    使用戶點(diǎn)擊后退按鈕使效三行代碼

    使用戶點(diǎn)擊后退按鈕使效三行代碼...
    2007-07-07
  • JS動(dòng)態(tài)修改表格cellPadding和cellSpacing的方法

    JS動(dòng)態(tài)修改表格cellPadding和cellSpacing的方法

    這篇文章主要介紹了JS動(dòng)態(tài)修改表格cellPadding和cellSpacing的方法,涉及javascript操作cellPadding和cellSpacing屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Javascript單元測(cè)試框架QUnitjs詳細(xì)介紹

    Javascript單元測(cè)試框架QUnitjs詳細(xì)介紹

    這篇文章主要介紹了Javascript單元測(cè)試框架QUnitjs詳細(xì)介紹,需要的朋友可以參考下
    2014-05-05
  • js生成的驗(yàn)證碼的實(shí)現(xiàn)與技術(shù)分析

    js生成的驗(yàn)證碼的實(shí)現(xiàn)與技術(shù)分析

    本文主要是分享了一段由JS生成驗(yàn)證碼并驗(yàn)證的代碼,非常簡(jiǎn)單,并分析了此方法的實(shí)用性,提供給大家參考下
    2014-09-09
  • JS變量提升及函數(shù)提升實(shí)例解析

    JS變量提升及函數(shù)提升實(shí)例解析

    這篇文章主要介紹了JS變量提升及函數(shù)提升實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • js完美解決IE6不支持position:fixed的bug

    js完美解決IE6不支持position:fixed的bug

    關(guān)于IE6,雖然它已被微軟拋棄很久了,但是由于大天朝的特殊行情(盜版)對(duì)于前端工程師來(lái)說(shuō),解決IE6兼容position:fixed的問(wèn)題顯得很重要。特別是你需要用到頭尾懸停調(diào)用的時(shí)候
    2015-04-04
  • Javascript中return的使用與閉包詳解

    Javascript中return的使用與閉包詳解

    Javascript中return與閉包對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,下面本文就給大家介紹了Javascript中return的使用與閉包。文中給出了詳細(xì)的示例代碼,對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,感興趣的朋友們下面來(lái)一起看看吧。
    2017-01-01
  • Bootstrap前端開發(fā)案例二

    Bootstrap前端開發(fā)案例二

    Bootstrap前端開發(fā)案例二,這篇文章能夠幫助大家更還好的進(jìn)行前端開發(fā)Bootstrap,相信大家會(huì)愛上Bootstrap
    2016-06-06
  • JavaScript中校驗(yàn)銀行卡號(hào)的實(shí)現(xiàn)代碼

    JavaScript中校驗(yàn)銀行卡號(hào)的實(shí)現(xiàn)代碼

    本文通過(guò)案例給大家介紹了js中校驗(yàn)銀行卡號(hào)的代碼,代碼小編測(cè)試過(guò),可行。代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2016-12-12
  • 原生JS封裝拖動(dòng)驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例

    原生JS封裝拖動(dòng)驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了原生JS封裝拖動(dòng)驗(yàn)證滑塊的實(shí)現(xiàn)代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論