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 就是每一個下標值 

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等參數完成功能。例如

可以記錄並嘗試。努力共勉


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM