vue中複選框全選與反選

  html主要部分: html

<template v-for="(item, index) in checkboxList">
  <input type="checkbox" v-model="selectList" :value="item">
</template>

  初始化selectList = [],checkboxList = ['蘋果', '橡膠', '梨', '桃子']。數組

  首先說全選事件,這個比較好弄。就是每次觸發事件的時候先清空selectList,而後將checkboxList的值賦值給selectList就好了。this

  

  反選事件。所謂反選就是先判斷若是有選中的則將其狀態變爲未選中,未選中則將其狀態變爲選中。spa

  今天偶然發現一個很好用的方法,就是借鑑兩個數組,判斷是否有相同元素,而後去重這種思路來解決反選問題。code

const _this = this
let checkboxList = _this.checkboxList  let selectList = _this.selectList let tempArr1 = [] let tempArr2 = [] if (!_this.selectList.length) { _this.selectList = _this.checkboxList  } else { for (let i = 0, len = selectList.length; i < len; i ++) { tempArr1[selectList[i]] = true //將數selectList中的元素值做爲tempArr1中的鍵,值爲true
} for(var j=0, lenj = checkboxList.length;j < lenj;j++){ if(!tempArr1[checkboxList[j]]){ tempArr2.push(checkboxList[j]); // 過濾checkboxList與selectList中相同的元素 } } _this.selectList = tempArr2 }
相關文章
相關標籤/搜索