for循环的问题
来源:2-18 Vue中DOM操作
qq_一个人一個人_0
2018-11-28 16:28:20
var app = new Vue({
el: '#app',
data: {
list: [
{
id: 1,
name: 'iPhone 8',
price: 8888,
count: 1
},
{
id: 2,
name: 'Huwei Mate10',
price: 6666,
count: 1
},
{
id: 3,
name: 'Lenovo',
price: 6588,
count: 1
}
],
selectList: [],
checked:
false
},
computed: {
totalPrice: function() {
var total = 0;
for (var i = 0, len = this.selectList.length; i < len; i++) {
var index = this.selectList[i];
var item = this.list[index];
if (item) {
total += item.price * item.count;
} else {
continue;
}
}
return total;
}
},
methods: {
handleReduce: function(index) {
var item = this.list[index];
if (item.count < 2) {
return;
}
item.count--;
},
handleAdd: function(index) {
var item = this.list[index];
item.count++;
},
handleRemove: function(index) {
this.list.splice(index, 1);
},
swapCheck: function() {
var selectList = document.getElementsByName('selectList');
var len = selectList.length;
if (this.checked) {
for (var i = 0; i < len; i++) {
var item = selectList[i];
item.checked = false;
}
this.checked = false;
this.selectList = [];
} else {
for (i = 0; i < len; i++) {
var item = selectList[i];
if (item.checked = true) {
this.selectList.push(selectList[i].value);
}
}
this.checked = true;
}
}
}
});<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 购物车</title>
<script src="https://cdn.bootcss.com/vue/2.5.13/vue.js"></script>
<link href="index.css" rel="external nofollow" rel="stylesheet">
</head>
<body>
<p id="app" v-cloak>
<template v-if="list.length">
<table>
<thead>
<tr>
<th><input type="checkbox" v-on:click="swapCheck" v-model="checked"></th>
<th>商品名称</th>
<th>商品单价</th>
<th>商品数量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(item,index) in list">
<td><input type="checkbox" v-model="selectList" :id="item.id" :value="index" name="selectList"></td>
<td>{{ item.name }}</td>
<td>{{ item.price }}</td>
<td>
<button @click="handleReduce(index)" :disabled="item.count === 1">-</button>
{{ item.count }}
<button @click="handleAdd(index)">+</button>
</td>
<td><button @click="handleRemove(index)">移除</button></td>
</tr>
</tbody>
</table>
<p>总价:¥ {{ totalPrice }}</p>
</template>
<p v-else>购物车为空!</p>
</p>
<script src="index.js"></script>
</body>
</html>[v-cloak] {
display: none;
}
table {
border: 1px solid black;
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
}
th,
td {
padding: 8px 16px;
border: 1px solid black;
text-align: center;
}
th {
background-color: gray;
}老师,这个VUE简易购物车里面的JS代码部分里的swapCheck方法里的第二个for循环里面和if搭配一起使用是起到一个监视器的作用吗?就是监视如果哪个商品被选中了就将其selectList[i].value放到this.selectList中,是这个意思吗?
2回答
同学你好,可以这里理解的,点击上面商品名称这个按钮的时候,若下面的商品被选中,就放到this.selectList中。这个不是课程中讲到的,这里是看同学学习努力,破例为同学解答的哦。

祝学习愉快!
好帮手慕糖
2018-11-28
同学你好,这是哪里的代码?这里是不是写错了,一个等号的话,是赋值,两个等号的话,才是判断是否等于true哦。

祝学习愉快!
相似问题