当前位置: 首页 > Web前端 > HTML

VUE多选删除列表遇到的坑

时间:2023-03-28 17:25:20 HTML

页面效果数据结构list:[{name:'Name1',indexes:[{tag:'Tag1'},{tag:'Tag2'},{tag:'Tag3'},{tag:'Tag4'}]},{name:'Tag2',indexes:[{tag:'Tag11'},{tag:'Tag22'},{tag:'Tag33'},{tag:'Tag44'},{tag:'Tag55'},{tag:'Tag66'}]},{name:'Name3',indexes:[{tag:'标签111'},{tag:'Tag222'}]},{name:'Name4',indexes:[{tag:'Tag1111'},{tag:'Tag2222'},{tag:'Tag3333'}]},{name:'Name5',indexes:[{tag:'Tag1'}]}]实现功能,右侧多选框选中,然后批量删除。没有本地实现的接口,遇到问题一开始一直想着foreach循环,选中就删掉,用foreach+splice(),然后遇到下面的问题,我选了四个只删了两个(当时不知道在想什么..)[图片上传失败...(image-44b5f3-1662600608087)]//删除方法deleteBtn(){this.list.forEach((i)=>{i.indexs.forEach((c,cIndex)=>{if(c.checked==true){console.log(c.checked);i.indexs.splice(cIndex,1)}});});}解决方案this.list.forEach((i)=>{//删除选中的对象i.indexs=i.indexs.filter(item=>{return!item.checked});});//name下的标签为空deletenamethis.list=this.list.filter(item2=>{returnitem2.indexs.length>0;});页面的整个代码如下/button>

  • 名称
  • 标签
  • {{item.name}}
  • {{iItem.tag}}
  • 按钮{背景:红色;白颜色;边框:无;填充:10px30px;边界半径:10px;margin-bottom:20px;}.bq-title{overflow:hidden;背景:#849f9c;高度:30px;行高:30px;白颜色;li{浮动:左;宽度:45%;文本对齐:居中;}}.bq-con{背景:#eff9f8;边界半径:5px;填充:5px;顶部边距:15px;溢出:隐藏;.checkbox{左边距:3px;}li{浮动:左;宽度:45%;文本对齐:居中;div{高度高:28px;边距:0自动5px自动;}span{字体大小:14px;边界半径:5px;高度:28px;行高:28px;宽度:80%;背景:#c5dad8;显示:内联块;}.mb-5{边距:0自动5px自动;}}}