根据同级兄弟上一类动态地将addClass()添加到元素吗?

奥涅兹

里面有一个<ul>元素<li>列表项具有:

<li class="folder"> 
<!-- or... -->
<li class="file">

嵌套在每个中folder's,都有一个color-label

<li class="folder">
    Folder 1 
    <i class="blue"></i>
</li>

我需要使用jQuery动态地查看所有<li class="folder">列表项并找到<i class="color">标签,然后将该类应用于每个<li class="file">兄弟姐妹,直到找到下一个文件夹颜色标签为止,然后重复该过程,直到所有这些都<li>具有正确的颜色为止在文件夹的color-label类上。

这是一个看起来像的例子:

在此处输入图片说明

我尝试使用.nextUntil()jquery方法,但效果不理想。这是我的代码:

https://jsfiddle.net/5c11sqL5/

<nav class="directory">
    <h1 class="title">Directory</h1>
    <ul class="container">
        <!-- Folder 1 -->  
        <li class="folder">Folder 1 <i class="blue"></i></li>
        <li class="file">File 1</li>
        <li class="file">File 2</li>
        <li class="file">File 3</li>

        <!-- Folder 2 -->  
        <li class="folder">Folder 2 <i class="green"></i></li>
        <li class="file">File 1</li>
        <li class="file">File 2</li>
        <li class="file">File 3</li>

        <!-- Folder 3 -->  
        <li class="folder">Folder 3 <i class="gray"></i></li>
        <li class="file">File 1</li>
        <li class="file">File 2</li>
        <li class="file">File 3</li>
    </ul>
</nav>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Courier New", Courier, monospace;
}

/* Directory */

.directory {
    display: flex;
    flex-direction: column;
    background: #ccc;
    width: 240px;
    height: 100vh;
}

.directory .title {
    letter-spacing: 3px;
    text-transform: uppercase;
    opacity: .07;
    text-align: center;
    margin: 1rem 0 0;
}

.directory .container {
    list-style: none;
}

/* Folder and Files */

.folder {
    font-weight: bold;
    font-size: 1rem;
    position: relative;
    padding: 0 0 0 1rem;
    margin: 1rem 0 0;
}

.file {
    font-size: .8rem;
    padding: 0 0 0 1rem;
}

/* Colors */

.blue,
.green,
.gray {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 5px;
    display: block;
}

.blue {
    background: rgba(0, 194, 224, 1);
}

.green {
    background: rgba(81, 232, 152, 1);
}

.gray {
    background: rgba(131, 140, 145, 1);
}
罗里·麦克罗森(Rory McCrossan)

您可以通过遍历每个i元素,然后将其类名复制到以下每个对象来实现此目的.file,如下所示:

$('.directory .folder i').each(function() {
    var className = $(this).prop('class');
    $(this).closest('li').nextUntil('.folder').addClass(className);
})

还要注意,您需要修改定义的类,以便position: absolute规则仅适用于i元素,如下所示:

i.blue,
i.green,
i.gray {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 5px;
    display: block;
}
i.blue {
    background: rgba(0, 194, 224, 1);
}
i.green {
    background: rgba(81, 232, 152, 1);
}
i.gray {
    background: rgba(131, 140, 145, 1);
}

.file.blue {
    color: rgba(0, 194, 224, 1);
}
.file.green {
    color: rgba(81, 232, 152, 1);
}
.file.gray {
    color: rgba(131, 140, 145, 1);
}

更新的小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态地将元素添加到HTML页面

来自分类Dev

动态地将属性添加到类

来自分类Dev

在php中动态地将css类添加到html元素

来自分类Dev

如何动态地将一个类添加到Selectize选项中?

来自分类Dev

如何动态地将ng-pattern属性添加到html元素?

来自分类Dev

动态地将事件处理程序添加到React.DOM元素

来自分类Dev

如何动态地将画布添加到div元素?

来自分类Dev

如何动态地将ng-pattern属性添加到html元素?

来自分类Dev

如何使用jquery动态地将元素添加到SVG图像?

来自分类Dev

如何动态地将类添加到焦点输入字段的父div?

来自分类Dev

动态地将类添加到跨度的特定部分

来自分类Dev

动态地将属性添加到指向字典中项目的Python类中

来自分类Dev

如何仅使用JavaScript将JavaScript动态地添加到“ body”类?

来自分类Dev

可以动态地将部分添加到Matlab发布脚本吗?

来自分类Dev

如何动态地将Image添加到ImageView?

来自分类Dev

动态地将超链接添加到gridview

来自分类Dev

动态地将数据添加到QTableView

来自分类Dev

动态地将视图添加到布局

来自分类Dev

动态地将标签添加到JTabbedPane

来自分类Dev

动态地将内容添加到标签页

来自分类Dev

如何动态地将图像添加到imageView

来自分类Dev

动态地将视图添加到RecyclerView

来自分类Dev

如何使用jQuery将折叠类动态添加到同一类的多个div

来自分类Dev

使用Javascript根据另一种输入类型的月份动态地将一年添加到输入类型的月份

来自分类Dev

单击嵌套元素将类添加到同级

来自分类Dev

Highcharts - 根据某些条件动态地将点添加到具有不同颜色的图表

来自分类Dev

将子元素添加到同一类的所有div

来自分类Dev

如何将 mouseenter() 或 mouseleave() 添加到同一类的多个元素?

来自分类Dev

如何动态地将URL添加到javascript中,以使第二页的div显示在第一页上?

Related 相关文章

  1. 1

    动态地将元素添加到HTML页面

  2. 2

    动态地将属性添加到类

  3. 3

    在php中动态地将css类添加到html元素

  4. 4

    如何动态地将一个类添加到Selectize选项中?

  5. 5

    如何动态地将ng-pattern属性添加到html元素?

  6. 6

    动态地将事件处理程序添加到React.DOM元素

  7. 7

    如何动态地将画布添加到div元素?

  8. 8

    如何动态地将ng-pattern属性添加到html元素?

  9. 9

    如何使用jquery动态地将元素添加到SVG图像?

  10. 10

    如何动态地将类添加到焦点输入字段的父div?

  11. 11

    动态地将类添加到跨度的特定部分

  12. 12

    动态地将属性添加到指向字典中项目的Python类中

  13. 13

    如何仅使用JavaScript将JavaScript动态地添加到“ body”类?

  14. 14

    可以动态地将部分添加到Matlab发布脚本吗?

  15. 15

    如何动态地将Image添加到ImageView?

  16. 16

    动态地将超链接添加到gridview

  17. 17

    动态地将数据添加到QTableView

  18. 18

    动态地将视图添加到布局

  19. 19

    动态地将标签添加到JTabbedPane

  20. 20

    动态地将内容添加到标签页

  21. 21

    如何动态地将图像添加到imageView

  22. 22

    动态地将视图添加到RecyclerView

  23. 23

    如何使用jQuery将折叠类动态添加到同一类的多个div

  24. 24

    使用Javascript根据另一种输入类型的月份动态地将一年添加到输入类型的月份

  25. 25

    单击嵌套元素将类添加到同级

  26. 26

    Highcharts - 根据某些条件动态地将点添加到具有不同颜色的图表

  27. 27

    将子元素添加到同一类的所有div

  28. 28

    如何将 mouseenter() 或 mouseleave() 添加到同一类的多个元素?

  29. 29

    如何动态地将URL添加到javascript中,以使第二页的div显示在第一页上?

热门标签

归档