如何按顺序将数组中的1个类应用于每个li?

Mat*_*ood 5 html css jquery

HTML

<ul class="logoUl">
    <li class="orange"></li>
    <li class="blue"></li>
    <li class="green"></li>
    <li class="pink"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

脚本

if (selectedCategory == 'currentAll') {

    var strString = "orange,blue,green,pink";
    var strArray = strString.split(',');

    $.each(strArray, function (index, value) {
        $("ul.logoUl > li").addClass(value)
    });
}
Run Code Online (Sandbox Code Playgroud)

在ul.logoUL中有4个li,这使得图像成为可能在此输入图像描述 有时徽标会获得背景颜色,将颜色重置为灰色 像这样

目前我的代码确实没有重置颜色在此输入图像描述

题:

如何li在一次添加一个类的同时迭代一个类,希望通过类获得原始颜色方案?

the*_*dox 6

var strString = "orange,blue,green,pink",
    strArray = strString.split(',');

$("ul.logoUl > li").each(function (index, value) {
    $(this).addClass(strArray[index]);
});
Run Code Online (Sandbox Code Playgroud)

DEMO

没有循环:

var strString = "orange,blue,green,pink",
    strArray = strString.split(',');

$("ul.logoUl > li").addClass(function (index) {
    return strArray[index];
});
Run Code Online (Sandbox Code Playgroud)

DEMO

注意

当你改变class它们li以使它们background有时相似时,所以当你想再次给它们原始的颜色方案时,最好先删除先前分配的颜色class然后再分配原始class如下:

var strString = "orange,blue,green,pink",
    strArray = strString.split(',');

$("ul.logoUl > li")
    .removeClass() // first remove previous class
    .addClass(function (index) { // then add new class
        return strArray[index];
    });
Run Code Online (Sandbox Code Playgroud)

DEMO