首页 > 其他分享 >关于vue中同时使用v-if和nth-of-type时的bug

关于vue中同时使用v-if和nth-of-type时的bug

时间:2023-08-02 19:22:43浏览次数:34  
标签:vue nth 元素 li ul type 选择器

问题引出

需求:例如我想要在某一个ul元素中使用v-if条件时渲染 2 个li元素,
同时第一个和第二个的样式不同,这里我使用了nth-of-type选择器去设置样式,
但是当v-if条件改变时,li元素的样式没有改变,看了下开发者工具,元素对应的选择器
没有改变,即使此时仅剩第二个li元素,它仍旧被nth-of-type(2)选中

代码:

<ul>
    <li v-if="pwdError">密码错误</li>
    <li v-if="countError">次数超限</li>
</ul>
.ul > li:nth-of-type(1) {
    color: red;
}
.ul > li:nth-of-type(2) {
    color: green;
}

比如此时这里当有两个错误提示时,第一个需要是红色,第二个需要是绿色,但是当错误数量从2个变为1个时,
如果消失的是第一个错误,这时候原先的第二个错误应该变为红色才对,但是实际它仍被nth-of-type(2)选中

解决办法

由于我这里只使用了两个元素,选择器我从nth-of-type换成了兄弟元素选择器+
但是仅局限于两个元素的情况

.ul > li {
    color: red;
}
.ul > li+li {
    color: green;
}

如果是多个li的情况,建议直接更新外层的元素ul

标签:vue,nth,元素,li,ul,type,选择器
From: https://www.cnblogs.com/pangqianjin/p/17601560.html

相关文章

  • 不可思议!Vue拖拽插件的实战大揭秘,竟然惊人抛弃了常规选择!
    大家好,我是程序视点的小二哥因为项目上有一个在规定区域内自由拖拽的小需求,自己纯js写又有点小麻烦,就花了点时间寻找到这个小组件。介绍vue-drag-resize是一个用于拖拽,缩放的组件根据网上搜索到的使用教程,都是照着文档翻译了一遍,根本解决不了我想要的问题花了几天时间,于是记......
  • 论文解读(APCA)《Adaptive prototype and consistency alignment for semi-supervised d
    [Wechat:Y466551|付费咨询,非诚勿扰]论文信息论文标题:Adaptiveprototypeandconsistencyalignmentforsemi-superviseddomainadaptation论文作者:JihongOuyang、ZhengjieZhang、QingyiMeng论文来源:2023aRxiv论文地址:download 论文代码:download视屏讲解:click1介绍......
  • 【vue】vue3+ts+element-plus制作的vueCms后台管理系统(开源)
    我的开源项目地址:vueCms_xg......
  • vue中使用axios发送请求时在header中设置请求头发现请求发送两次
    问题:vueaxios跨域请求,在RequestHeaders加Authorization传递Token时,发现统一请求触发了两次,第一次是RequestMethod:OPTIONS请求。原因:跨域请求时,浏览器会首先使用OPTIONS方法发起一个预请求,判断接口是否能够正常通讯。如果通讯异常,则不会发送真正的请求,如果测试通讯正常,则开......
  • C#基础之Response.ContentType响应内容类型[通俗易懂]
    3、设置响应内容类型改为json类型,效果如下  Response.ContentType1、文本格式:html、xml、txtResponse.ContentType=“text/html“;Response.ContentType=“text/xml”;Response.ContentType=“text/plain”;2、图片格式Response.ContentType=“image/jpg”;R......
  • antd upload vue3 取消请求,取消进行中的接口请求
    在使用antdupload组件时,大文件上传等待时长太久,在上传过程中想取消上传,即取消进行中的接口请求。不解释,上代码:importaxiosfrom'axios';<a-uploadv-model:file-list="fileList"name="file":multiple="true":action=......
  • Vue学习笔记:VCA下使用provide与 inject
    在VCA模式下使用provide和inject与之前文档中VOA模式类似,不同的是需要在使用前进行importimport{provide,inject}from'vue'在此篇文档中,使用一个示例来演示provide与inject的使用功能如下:组件NavbarDetailList部署在根组件App上。在初始页面,显示Navbar与List。List组件......
  • vue-让你的组件支持v-model
    原文:https://zhuanlan.zhihu.com/p/453112282在定义vue组件时,可以提供一个model属性,用来定义组件以何种方式支持v-model。model本身是有默认值的,如下:也就是说,如果你不定义model属性,或者按照上面的方式定义model属性,当其他人使用你的自定义组件时,v-model='foo',就等......
  • VUE后台管理系统(二)
    SPU管理先搞定静态组件(类似Attr管理的页面结构)###product.Spu.index.vue<template><div><!--三级联动结构(全局组件)--><el-cardstyle="margin:20px0px;"><!--传值show过去--><CategorySelect@getCategoryId="getCate......
  • typescript 快速入门
    1.环境搭建1.1安装安装typescriptyarnaddtypescript-g安装ts-nodets-node是一个在内存中运行的TypeScript运行时,它可以直接运行ts文件,而不需要将ts文件编译成js文件yarnaddts-node-g安装@types/node@types/node是node.js的类型定义文件,......