Vue 获得所选中目标的状态(checked)以及对应目标的数据,并进行相应的操作
一、我们现在要拿取购物车中选中商品的状态和该商品的所有数据或者id
<ul v-if="shopList.list.length>0">
<li class="shop-item" v-for="(item, index) in shopList.list" :key="index">
<!-- 图片 -->
<div class="check_wrap" @click="selectAllBtn($event)">
<input class="check" :check=check name="Fruit" type="checkbox" :value=index ref="checks" />
</div>
<div class="icon">
<span>
<img :src="item.img" alt="" v-lazy="item.img">
</span>
</div>
<!-- 主要内容 -->
<div class="content">
<h2>{{item.name}}</h2>
<div class="extra">
<span>UFV {{item.price}}</span>
<span style="text-decoration:line-through">UFV {{item.price_origin}}</span>
</div>
<div class="cartcontrol-wrapper">
<div class="shop_delete" @click="reduce"><img src="../../assets/images/shopCar/-@2x.png" alt=""></div>
<div class="shop_count"><span>{{item.count}}</span></div>
<div class="shop_add" @click="add"><img src="../../assets/images/shopCar/+@2x.png" alt=""></div>
</div>
</div>
</li>
</ul>
1、使用 ref ,给 input 标签加上一个 ref 例如
2、我们可以通过 this,$refs 操作到该标签的dom 拿到input输入框一系列数据或者状态
这里我们选择在点击清空选中商品的按钮这里触发 this.$refs
这里将列表中的商品状态全部打印出来 ,我们可以看一下 这三个商品的选中状态
这时候就可以很清晰的看到,三个商品 分别0,1,2 只有第一个选中的商品的checked状态为true其他都为false,那么就可以接下来的操作了
二、我们应该怎么拿到全部呢,这时候可以循环遍历出所有的选中信息,从而拿到一个key(index.item)等等 继续操作
1、这里可以使用到 forEach 怎么使用呢,数组.forEach(element=>{}) 这里的element 就是遍历之后的多行数组,我们可以看一下
value 就是每一个下标值
三、这个时候就要开始拿到选中的商品的id了,也可以拿其他的,这里我通过拿id 进行清除所选的操作
1、可以进行判断商品是否被选中,如果被选中,就拿取选中的id并放入一个数组里面
checkShops 就是每个商品的选中与否的信息,


这里我们可以清楚的看到 点击清楚所选的时候,选中的商品的id已经被放在了一起并且用 ,逗号隔开,这里用逗号隔开是公司项目要求需要 使用逗号隔开是使用 join(',') 数组.join(',')
就可以进行剩下的操作,点击清除所选项目,发送请求携带id等参数完成功能。例如
可以记录并尝试。努力共勉
Vue 获得所选中目标的状态(checked)以及对应目标的数据,并进行相应的操作的更多相关文章
- 测试Javacript里的checkbox是否被选中的status和checked的替换方法
测试Javacript里的checkbox是否被选中的status和checked的替换方法,checkbox.checked和checkbox.status的功能一样,注意checkbox.stat ...
- Vue.js 2.x笔记:状态管理Vuex(7)
1. Vuex简介与安装 1.1 Vuex简介 Vuex是为vue.js应用程序开发的状态管理模式,解决的问题: ◊ 组件之间的传参,多层嵌套组件之间的传参以及各组件之间耦合度过高问题 ◊ 不同状态中 ...
- Vue兄弟组件(非父子组件)状态共享与传值
前言:网上大部分文章写的有点乱,很少有讲得易懂的文章. 所以,我写了篇在我能看得懂的基础上又照顾到大家的文章 =.= 作者:X1aoYE 备注:此文原创,转载请注明~ 内容里的<br> ...
- Vue 循环为选中的li列表添加效果
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Vu ...
- 目标决定人生——没有目标就失去一切 (没有目标的奋斗是浪费青春,比如交了钱却不去参加考试、让时间白白溜走。根据目标与定位来选择最合适的企业。人生要算总账)good
没有目标就失去一切 刚毕业那会儿,幼稚得可笑,老跟同学打电话,明面上聊聊近况,暗地里比较.你要比我工资多一百块,心里特不平衡,凭什么呀,在学校那会儿公认的我比你强.你要带个头衔,而我啥也不是,普通员工 ...
- Vue总结第六天:Vuex (全局变量管理~多个页面共享数据)
Vue总结第六天:Vuex (全局变量管理~多个页面共享数据) 目录 一.Vuex (全局变量管理~~多个页面共享数据) ✿ 更详细的可以看官网:开始 | Vuex 1.什么是Vuex? 2.核心概念 ...
- Vue小项目二手书商城:(三)前端渲染数据
实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...
- 14Flutter StatefulWidget有状态组件、页面上绑定数据、改变页面数据、实现计数器功能、动态列表
/** * Flutter StatefulWidget有状态组件.页面上绑定数据.改变页面数据 * 在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/Stat ...
- 在微信框架模块中,基于Vue&Element前端,通过动态构建投票选项,实现单选、复选的投票操作
最近把微信框架的前端改造一下,在原来基于Bootstrap框架基础上的微信后台管理,增加一套Vue&Element的前端,毕竟Vue的双向绑定开发起来也还是很方便的,而且Element本身也提 ...
随机推荐
- Linux配置本地yum源
最近在配置zabbix时,遇到CentOS 无法连接网络问题,搜索到一种配置本地yum源的方法,特此记录 一.联网安装预处理 配置缓存,修改/etc/yum.conf [main] cachedir= ...
- Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused
Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: getsockopt: connection refused
- centos7下安装docker(17.5docker监控的总结对比)
到现在为止,我已经学习了docker自带的监控方案:ps/ls/top/stats,以及sysdig,weave scope,cadvisor,prometheus多种监控工具,现在做个总结和比较 部 ...
- UVA225-Golygons(dfs)
Problem UVA225-Golygons Accept:307 Submit:3646 Time Limit: 3000 mSec Problem Description Imagine a ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- 最长回文(manacher模板)
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> us ...
- 【angularjs】使用angularjs模拟淘宝首页-淘宝头条滚动效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Oracle 迁移 序列
---删除序列select 'drop sequence ' || sequence_owner || '.' || SEQUENCE_NAME || ';'from dba_sequenceswhe ...
- C# — Socket通信实现
昨天晚上在网上查找资料,简单实现了C#开发的Socket通信,以下是具体的开发流程,我使用的是VS2017进行开发的: 一.服务器端: 1.新建一个项目,Windows控制台程序 2.重命名cs文件 ...
- jquery.$.ajax简单的使用
function LoadWFS() { var viewer = new Cesium.Viewer('cesiumContainer'); $.ajax({ url: "http://l ...