JS --- 获得所选取目标的状态(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/[email protected]" alt=""></div>
                      <div class="shop_count"><span>{{item.count}}</span></div>
                      <div class="shop_add" @click="add"><img src="../../assets/images/shopCar/[email protected]" alt=""></div>
                  </div>
              </div>
          </li>
      </ul>

 1、使用 ref ,给 input 标签加上一个 ref 例如

2、我们可以通过 this,$refs 操作到该标签的dom 拿到input输入框一系列数据或者状态

这里我们选择在点击清空选中商品的按钮这里触发 this.$refs 

  

 这里将列表中的商品状态全部打印出来 ,我们可以看一下 这三个商品的选中状态

扫描二维码关注公众号,回复: 5747440 查看本文章

 这时候就可以很清晰的看到,三个商品 分别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等参数完成功能。例如

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

猜你喜欢

转载自www.cnblogs.com/mica/p/10641902.html