vue选择元素-全选-单选-删除选中
vue选择元素-全选-单选-删除选中

html:
<div class="vueBox"> <div class="music_list"> <input type="checkbox" class="check_box"> <label class="title"></label> </div> <div class="footer"> <div class="all_checked"> <input type="checkbox" id="allChecked"> <label for="allChecked" class="title">全选/全不选</label> <audio src="" controls></audio> </div> <div class="checked_list"> 已选择的ID </div> </div> <div class="delete">删除</div> </div>
css:
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, a, input, button, p, img, span{
margin: 0;
padding: 0;
border: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
ol, ul, li{
list-style: none;
}
a {
text-decoration: none;
}
.music_list, .all_checked{
position: relative;
width: 100%;
padding: 5px;
margin-top: 5px;
display: flex;
align-items: center;
}
.title{
margin-left: 10px;
}
.checked_list{
width: 100%;
padding: 5px;
margin-top: 5px;
display: flex;
align-items: center;
}
.delete{
width: 200px;
text-align: center;
padding: 5px 20px;
border-radius: 5px;
border:1px solid salmon;
margin-left:5px;
margin-top: 10px;
background-color: salmon;
color: #fff;
}
.delete:hover{
background-color: #fc4a20;
}vuejs:
<script src="js/vue.js"></script>
<script>
var vm = new Vue({
el:".vueBox",
data:{
checkedNames:[],
music_list:[],
all_cheched:false,
},
computed:{
},
created:function(){
},
mounted:function(){
this.getMusic();
},
methods: {
allChecked:function(){
if(this.checkedNames.length === this.music_list.length){
// 全不选
this.checkedNames = [];
}else{
this.checkedNames = [];
// 全选
this.music_list.forEach((item)=>{
//与checkbox的value统一
this.checkedNames.push(item.id);
})
}
},
getMusic:function(){
var music_list = [
{
"id": 'dzqth',
"cov": "img/dzqth.jpg",
"voi":"music/dzqth.mp3",
"tit": "独自去偷欢-刘德华"
},
{
"id": 'tfll',
"cov": "img/tfll.jpg",
"voi":"music/tfll.mp3",
"tit": "头发乱了-张学友"
},
{
"id": 'fk',
"cov": "img/fk.jpg",
"voi":"music/fk.mp3",
"tit": "浮夸-陈奕迅"
},
{
"id": 'ccnn',
"cov": "img/ccnn.jpg",
"voi":"music/ccnn.mp3",
"tit": "匆匆那年-王菲"
},
{
"id": 'hl',
"cov": "img/hl.jpg",
"voi":"music/hl.mp3",
"tit": "后来-刘若英"
}
];
this.music_list = music_list;
},
deleteMusic:function(){
var music_list = this.music_list;
var checkedNames = this.checkedNames;
/*遍历循环查找选中项*/
checkedNames.forEach((item,index)=>{
music_list.forEach((music,i)=>{
if(music.id == item){
music_list.splice(i,1);
}
});
})
this.music_list = music_list;
this.checkedNames = [];
}
}
});
</script>
吐槽一下


还没有留言,还不快点抢沙发?