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渲染的元素动态添加移除类名相关推荐

  1. vue中给v-for循环出来的元素分别加样式

    vue中给v-for循环出来的元素分别加样式 1.绑动态样式` <div :class="box" v-for="(item, index) in datas&qu ...

  2. vue中父子组件先后渲染_vue父子组件钩子函数的执行顺序

    加载渲染过程 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount-& ...

  3. Vue 中 强制组件重新渲染的正确方法

    作者:Michael Thiessen 译者:前端小智 来源:hackernoon 有时候,依赖 Vue 响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据.或者,我们可能只想抛开当 ...

  4. vue中父子组件先后渲染_vue父子组件传值(子传父,非父子组件传值)

    1. 子组件向父组件传值 子组件: <template><div>子组件:<span>{{childValue}}</span><!-- 定义一个 ...

  5. vue中父子组件先后渲染_Vue中父子组件执行的先后顺序

    前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...

  6. vue中的dom基本渲染

    一.输出动态标签 请只对可信内容使用HTML插值,绝不要对用户提供的内容使用插值,容易导致xss攻击. <div id="J_app"><div v-html=& ...

  7. 详解vue组件的is特性:限制元素动态组件

    在vue.js组件教程的一开始提及到了is特性 意思就是有些元素,比如 ul 里面只能直接包含 li元素,像这样: <ul><li></li> </ul> ...

  8. javascript --- vue中简单的模板渲染

    一层的渲染 将下面的模板中的mustache语法使用给定数据渲染. 模板如下 <div id="root"><div><div><p> ...

  9. Vue中使用v-for生成dom删除元素错乱的问题

    项目上需要一个条件树的组件,多个条件这里使用一个数组去保存,然后使用v-for循环数组插入dom. vue组件里使用v-for时很容易忽略了每一项的key值,遇到的问题如果后续需要对数组进行删除操作的 ...

最新文章

  1. T-SQL IN 谓词
  2. Windows计算机管理打不开提示程序未关联解决办法
  3. 新闻资讯APP开发流程(八)-- ContentView.js
  4. 用万字长文聊一聊 Embedding 技术
  5. 苹果CMS萝卜二开修复渐变绿影视原生App源码-投屏试看可用
  6. python selenium 关闭窗口_Selenium快速上手实战 | 上篇
  7. JMETER分布式部署注意事项
  8. 卸载python的正确姿势
  9. 使用idea开发SpringBoot应用,添加@SpringBootApplication注解时,不能自动提示
  10. 百度文库文档免费下载功能
  11. 19年6月英语六级第一套听力单词
  12. 糖尿病视网膜病变研究的基准:分割、分级和可转移性笔记
  13. HTML网页图像标签
  14. Android基于WIFI实现电脑和手机间数据传输的技术方案研究
  15. “第三届金融CIO班”开学典礼成功举行
  16. 机器学习(第二章)—— 模型评估
  17. 汽车/车载/自动驾驶/辅助驾驶相关认知记录
  18. 盒子模型(CSS重点)
  19. 西汉 东汉 三国(曹魏 蜀汉 东吴)
  20. 剪裁头像裁剪遇到关于小米华为适配问题的解决

热门文章

  1. c语言很简单只要一节课,计算机二级C语言考什么
  2. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received.
  3. 【JZOJ4246】san【最短路】【搜索】
  4. Centos6.4忘记密码 单机下修改root密码
  5. Java 按照拼音首字母排序
  6. 客户机是计算机网络硬件吗,计算机网络中硬件连接设备有哪些?
  7. kvm 4.磁盘格式简介及使用磁盘格式转换的方式拍摄快照
  8. Exchangeable Image File (EXIF)图片信息
  9. android6.0 cta认证,手机cta认证要求有哪些?
  10. 神话人物马化腾的“神话”