如图:
两列表用来两个list数组装,当我点击添加时下面的那一条数据添加到上面的list数组中,同时这一条的背景色改变,两个列表都是用v-for循环出来的。
想实现添加一条数据上去背景色就改变。
如图:
两列表用来两个list数组装,当我点击添加时下面的那一条数据添加到上面的list数组中,同时这一条的背景色改变,两个列表都是用v-for循环出来的。
想实现添加一条数据上去背景色就改变。
是最后一条数据添加背景色吗?
1.最简单的方法用css的:last-child选择器
li:last-child{
background: green;
}
2.v-for循环判断添加active:class="index+1==items.length?'active':''"
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
ul{
list-style: none;
}
li.active{
background: green;
}
li:last-child{
background: green;
}
</style>
</head>
<body>
<div id="box">
<ul>
<li v-for="(item,index) in items" :key="index" :class="index+1==items.length?'active':''">{{item}}</li>
</ul>
<button @click="add">添加</button>
</div>
<script src="vue.js"></script>
<script>
var vm = new Vue({
el:"#box",
data:{
items:["aaa","bbb","ccc"]
},
methods:{
add:function(){
this.items.push("ddd");
}
}
})
</script>
</body>
</html>
3.调用函数返回class
<li v-for="(item,index) in items" :key="index" :class="addactive(index)">{{item}}</li>
methods:{
add:function(){
this.items.push("ddd");
},
addactive:function(index){
if(index==this.items.length){
return 'active';
}
}
}
当然还有其他方法,就不多说了
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答5k 阅读
如果要比较好一点控制的话,可以加一个属性,用来控制背景色