如图:
两列表用来两个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.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
如果要比较好一点控制的话,可以加一个属性,用来控制背景色