一、我们现在要拿取购物车中选中商品的状态和该商品的所有数据或者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 就是每一个下标值

var checkShops = checkShopList[values].checked
checkShops就是每个商品所选中的状态
可以看到,打印出了每一个状态,第一个为true 其他为false

三、这个时候就要开始拿到选中的商品的id了,也可以拿其他的,这里我通过拿id 进行清除所选的操作

1、可以进行判断商品是否被选中,如果被选中,就拿取选中的id并放入一个数组里面

checkShops 就是每个商品的选中与否的信息,

var checkShops = checkShopList[values].checked  根据下标values遍历
2、如果checkShops为true 就是为选中状态,那么我们就将这些选中的id,加入到goodsids数组中
这里使用到push()方法, 数组.push(数据)  
注意:这里的goodsids 需要在forEach方法外面定义
因为在forEach 循环内部的话,会将每一个数组都遍历出来,每个数组里面且只有一个id数组
 

这里我们可以清楚的看到 点击清楚所选的时候,选中的商品的id已经被放在了一起并且用 ,逗号隔开,这里用逗号隔开是公司项目要求需要 使用逗号隔开是使用 join(',')  数组.join(',')

就可以进行剩下的操作,点击清除所选项目,发送请求携带id等参数完成功能。例如

可以记录并尝试。努力共勉

Vue 获得所选中目标的状态(checked)以及对应目标的数据,并进行相应的操作的更多相关文章

  1. 测试Javacript里的checkbox是否被选中的status和checked的替换方法

    测试Javacript里的checkbox是否被选中的status和checked的替换方法,checkbox.checked和checkbox.status的功能一样,注意checkbox.stat ...

  2. Vue.js 2.x笔记:状态管理Vuex(7)

    1. Vuex简介与安装 1.1 Vuex简介 Vuex是为vue.js应用程序开发的状态管理模式,解决的问题: ◊ 组件之间的传参,多层嵌套组件之间的传参以及各组件之间耦合度过高问题 ◊ 不同状态中 ...

  3. Vue兄弟组件(非父子组件)状态共享与传值

      前言:网上大部分文章写的有点乱,很少有讲得易懂的文章. 所以,我写了篇在我能看得懂的基础上又照顾到大家的文章 =.= 作者:X1aoYE 备注:此文原创,转载请注明~  内容里的<br> ...

  4. Vue 循环为选中的li列表添加效果

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Vu ...

  5. 目标决定人生——没有目标就失去一切 (没有目标的奋斗是浪费青春,比如交了钱却不去参加考试、让时间白白溜走。根据目标与定位来选择最合适的企业。人生要算总账)good

    没有目标就失去一切 刚毕业那会儿,幼稚得可笑,老跟同学打电话,明面上聊聊近况,暗地里比较.你要比我工资多一百块,心里特不平衡,凭什么呀,在学校那会儿公认的我比你强.你要带个头衔,而我啥也不是,普通员工 ...

  6. Vue总结第六天:Vuex (全局变量管理~多个页面共享数据)

    Vue总结第六天:Vuex (全局变量管理~多个页面共享数据) 目录 一.Vuex (全局变量管理~~多个页面共享数据) ✿ 更详细的可以看官网:开始 | Vuex 1.什么是Vuex? 2.核心概念 ...

  7. Vue小项目二手书商城:(三)前端渲染数据

    实现内容: axios取到的数据在前端使用(父子组件各自应该怎么使用) 一.简单使用(在哪取在哪用) 1.在App.vue中script中加上data(data专属于当前组件,父子组件传参通过prop ...

  8. 14Flutter StatefulWidget有状态组件、页面上绑定数据、改变页面数据、实现计数器功能、动态列表

    /** * Flutter StatefulWidget有状态组件.页面上绑定数据.改变页面数据 * 在Flutter中自定义组件其实就是一个类,这个类需要继承StatelessWidget/Stat ...

  9. 在微信框架模块中,基于Vue&Element前端,通过动态构建投票选项,实现单选、复选的投票操作

    最近把微信框架的前端改造一下,在原来基于Bootstrap框架基础上的微信后台管理,增加一套Vue&Element的前端,毕竟Vue的双向绑定开发起来也还是很方便的,而且Element本身也提 ...

随机推荐

  1. 利用nginx搭建小型的文件服务器

    PS内的文件如果需要共享给其他计算机下载,可以选择ftp的方式,优点是操作性很高,修改删除下载等等都可以,但是速度略慢. 如果仅仅是将VPS作为文件中转站,可以尝试用Nginx架设一个简单的文件服务器 ...

  2. flask的migrate

    https://blog.csdn.net/kevin_qq/article/details/51777190 这个方法可以: https://www.cnblogs.com/caicairui/p/ ...

  3. (5)Python字典

  4. ASP.Net Web API 输出缓存 转载 -- Output caching in ASP.NET Web API

    一.Nuget安装相关dll Web API 2 : Install-Package Strathweb.CacheOutput.WebApi2 Web API 1 : Install-Package ...

  5. 转://Oracle A用户给B用户授权查询指定表或视图权限方案

    用DNINMSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TB ...

  6. https基础

    面试题 https://blog.csdn.net/xihuangwutong/article/list/5? TLS 有三大功能:内容加密,身份认证,数据完整性认证 内容加密是依赖于秘钥协商协议数据 ...

  7. flask-sqlalchemy中Datetime的创建时间、修改时间,default,server_default,onupdate

    记录第一次创建时间,default falsk中如下两个字段 create_time1 = db.Column(db.DateTime, default=datetime.now) create_ti ...

  8. IDEA+提示“Cannot resolve symbol XXXX”

    问题描述:鼠标放置下图中红色包上提示“Cannot resolve symbol XXXX”信息 解决: File->Invalidate Caches/Restart 清除缓存并重启 idea

  9. eclipse如何设置断点&断点处运行快捷键

    第一步: 设置断点:在该行最前面边框双击  或快捷键:Ctrl+Shift+B   第二步: Debug 运行启动   第三部: 运行到断点后: 使用快捷键F5,F6,F7单步执行. F5:Step ...

  10. 环境部署(一):Linux下安装JDK

    自动化测试的主要目的是为了执行回归测试.当然,为了模拟真实的用户操作,一般都是在UAT或者生产环境进行回归测试. 为了尽量避免内网和外网解析对测试结果的影响,将自动化测试服务部署在外网的服务器是比较好 ...