Vue复选框批量删除示例

Vue复选框批量删除

通过使用v-model指令绑定单个复选框

例如<input type="checkbox" id="checkbox" v-model="checked">

而本次我们要做的示例大致是这样的,首先可以增加内容,然后通过勾选来进行单独或者批量删除 ,但是在此处就可以进行批量操作。

通过勾选原神和明日进行批量删除后,发现成功了,那么这就是表名咱们的操作没有问题,接下来就要具体代码实现。

具体代码实现

body中div,挂载点是zjw,也就是张俊伟的缩写,当然这可以自己写什么都行,只要与Vue里面的el对应

html 复制代码
<div id="zjw">
<span>添加一条内容</span>
<input placeholder="输入内容" v-model="value"/>
<button @click="add()">添加</button>
  <ul>
    <li v-for="(item,index) in list" :key="index">
        <input type="checkbox" v-model="item.c"/>
        <span>{{item.d}}</span>
        <button @click="remove(index)">删除</button></li>
  </ul>
    <button @click="removeAll()">批量删除</button>
</div>
<script>
  const app=new Vue({
    el:'#zjw',
    data(){
      return{
        list:[{d:'洗碗',c:false},{d:'擦地',c:false}],
        value:''
      }
    },
    methods:{
      add(){
          adds={
              d:this.value,
              c:false
          }
        this.list.push(adds)
        this.value=''
      },
      remove(i){
          if(this.list[i].c==true)
        this.list.splice(i,1)
      },
        removeAll(){
            for (var i = this.list.length - 1; i >= 0; i--)
                if (this.list[i].c==true) this.list.splice(i, 1);
        }
    }
  })
</script>

分析环节

添加的框

添加操作用@click绑定了一个add()
在input中的v-model是value

html 复制代码
<span>添加一条内容</span>
<input placeholder="输入内容" v-model="value"/>
<button @click="add()">添加</button>

下面是script内容
在data中我是用了对象数组来做,里面用了一个c来放复选的状态false没选,true选

而add中也是每次添加的不止文字,还有false或者true,通过this.list.push(adds)加入到数组队尾

html 复制代码
data(){
      return{
        list:[{d:'洗碗',c:false},{d:'擦地',c:false}],
        value:''
      }
    },
    methods:{
      add(){
          adds={
              d:this.value,
              c:false
          }
        this.list.push(adds)
        this.value=''
      },

对于单个删除和批量操作

这里通过<li v-for="(item,index) in list" :key="index"> <input type="checkbox" v-model="item.c"/> <span>{``{item.d}}</span> <button @click="remove(index)">删除</button></li>

来讲data中的数据显示出来,并且可以删除或者批量

button中,使用v-model="item.c"绑定复选框的状态

html 复制代码
 <ul>
    <li v-for="(item,index) in list" :key="index">
        <input type="checkbox" v-model="item.c"/>
        <span>{{item.d}}</span>
        <button @click="remove(index)">删除</button></li>
  </ul>
    <button @click="removeAll()">批量删除</button>

单个删除就是如下操作,一个简单判断this.list[i].c的值就行

对于多选其实也就是多了一个在数组中的循环
for (var i = this.list.length - 1; i >= 0; i--)就可以完成批量删除了

html 复制代码
  remove(i){
          if(this.list[i].c==true)
        this.list.splice(i,1)
      },
        removeAll(){
            for (var i = this.list.length - 1; i >= 0; i--)
                if (this.list[i].c==true) this.list.splice(i, 1);
        }
相关推荐
Setsuna_F_Seiei4 小时前
前端转型 Agent 开发 04 之 MCP 与 Skill(赋予 Agent 更广工作能力)
前端·agent
刘发财5 小时前
前端2秒生成500页矢量PDF,rust真的强到没朋友
前端·javascript·rust
郑州光合科技余经理6 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
梦想平凡6 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理
yume_sibai7 小时前
06-Rust Web 开发实战(Axum 框架 + 数据库 + JWT 认证 + 中间件 + 部署)
前端·数据库·rust
计算机魔术师9 小时前
特朗普上台打给黄仁勋:AI末日论是骗局,我们绝不让它发生
前端
troy1289 小时前
Python 基础语法(八):Web 后端开发、数据分析与可视化、网络爬虫、人工智能 / 大模型应用
前端·python·数据分析
计算机魔术师9 小时前
CEO说要慢下来,黑客说别做梦了——同一篇论文,两种命运
前端
kyriewen10 小时前
我花3天抓了一个幽灵bug,凶手藏在第4层
前端·javascript·程序员
IT_陈寒10 小时前
Java里用Stream.parallel()翻车实录,这性能还不如单线程
前端·人工智能·后端