vue中 给v-for渲染的元素动态添加移除类名
vue中 给v-for渲染的元素动态添加移除类名
今天在项目中需要做一个效果,点击对应的li改变当前的color,其他的li取消颜色,在jQuery中这很容易,由于之前已经引入了jQuery,所以直接想到了这个办法。
但是出于未知的原因,jQuery获取不到v-for出来的数据,根本找不到dom节点,所以不得不改变思路。
然后我想到了V-bind的方法。下面贴上步骤。
1.在data里面生明一个属性,默认值最好为数字类型,并且不得大于当前元素+所有兄弟元素的length,可以默认为0(第一个元素选中)
current: '0', //如果不想默认被选中,就把值设为一个超出所有元素length的数字
2.在当前元素中添加动态class: “:class”,根据vue的class和style的绑定特性写出类似“v-bind:class="{ classred:index==current}"”,当然其他方法很多,可以根据文档自行选择
<ul class="list"><li v-for="(item,index) in list" :key="index" @click="handleList(index)" :class="{red:index==current}">{{item.name}}</li>‘red’是你要给的类名
</ul>
3.给元素点击事件,传入当前元素的index,把元素当前的index赋值给data里面的申明的属性
handleList (index) {this.current = index;},
这样就大功告成了,下面展示完整代码
<!-- -->
<template><div><ul><li v-for="(item,index) in liList" v-on:click="addClass(index)" v-bind:class="{ classred:index==current}">{{item.name}}</li></ul></div>
</template>
<script>
export default {components: {},data () {return {liList:[{name:'张三'},{name:'李四'},{name:'王五'}],current:0,};},methods: {addClass:function(index){ this.current=index;}}
}</script>
<style scoped>.classred{ color:red; }
</style>
vue中 给v-for渲染的元素动态添加移除类名相关推荐
- vue中给v-for循环出来的元素分别加样式
vue中给v-for循环出来的元素分别加样式 1.绑动态样式` <div :class="box" v-for="(item, index) in datas&qu ...
- vue中父子组件先后渲染_vue父子组件钩子函数的执行顺序
加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount-& ...
- Vue 中 强制组件重新渲染的正确方法
作者:Michael Thiessen 译者:前端小智 来源:hackernoon 有时候,依赖 Vue 响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据.或者,我们可能只想抛开当 ...
- vue中父子组件先后渲染_vue父子组件传值(子传父,非父子组件传值)
1. 子组件向父组件传值 子组件: <template><div>子组件:<span>{{childValue}}</span><!-- 定义一个 ...
- vue中父子组件先后渲染_Vue中父子组件执行的先后顺序
前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...
- vue中的dom基本渲染
一.输出动态标签 请只对可信内容使用HTML插值,绝不要对用户提供的内容使用插值,容易导致xss攻击. <div id="J_app"><div v-html=& ...
- 详解vue组件的is特性:限制元素动态组件
在vue.js组件教程的一开始提及到了is特性 意思就是有些元素,比如 ul 里面只能直接包含 li元素,像这样: <ul><li></li> </ul> ...
- javascript --- vue中简单的模板渲染
一层的渲染 将下面的模板中的mustache语法使用给定数据渲染. 模板如下 <div id="root"><div><div><p> ...
- Vue中使用v-for生成dom删除元素错乱的问题
项目上需要一个条件树的组件,多个条件这里使用一个数组去保存,然后使用v-for循环数组插入dom. vue组件里使用v-for时很容易忽略了每一项的key值,遇到的问题如果后续需要对数组进行删除操作的 ...
最新文章
- T-SQL IN 谓词
- Windows计算机管理打不开提示程序未关联解决办法
- 新闻资讯APP开发流程(八)-- ContentView.js
- 用万字长文聊一聊 Embedding 技术
- 苹果CMS萝卜二开修复渐变绿影视原生App源码-投屏试看可用
- python selenium 关闭窗口_Selenium快速上手实战 | 上篇
- JMETER分布式部署注意事项
- 卸载python的正确姿势
- 使用idea开发SpringBoot应用,添加@SpringBootApplication注解时,不能自动提示
- 百度文库文档免费下载功能
- 19年6月英语六级第一套听力单词
- 糖尿病视网膜病变研究的基准:分割、分级和可转移性笔记
- HTML网页图像标签
- Android基于WIFI实现电脑和手机间数据传输的技术方案研究
- “第三届金融CIO班”开学典礼成功举行
- 机器学习(第二章)—— 模型评估
- 汽车/车载/自动驾驶/辅助驾驶相关认知记录
- 盒子模型(CSS重点)
- 西汉 东汉 三国(曹魏 蜀汉 东吴)
- 剪裁头像裁剪遇到关于小米华为适配问题的解决
热门文章
- c语言很简单只要一节课,计算机二级C语言考什么
- error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received.
- 【JZOJ4246】san【最短路】【搜索】
- Centos6.4忘记密码 单机下修改root密码
- Java 按照拼音首字母排序
- 客户机是计算机网络硬件吗,计算机网络中硬件连接设备有哪些?
- kvm 4.磁盘格式简介及使用磁盘格式转换的方式拍摄快照
- Exchangeable Image File (EXIF)图片信息
- android6.0 cta认证,手机cta认证要求有哪些?
- 神话人物马化腾的“神话”