jquery - 将特定类添加到 <li> 元素并重复添加模式

标签 jquery html arrays

我有一个<ul>列表,我向每个元素添加不同的类。 jQuery 运行良好,但我找不到如何做的是如果列表继续动态增长则重复该模式。

示例

<ul class="portfolio">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
</ul>

Jquery

var sizes = ['col-md-6', 'col-md-6', 'col-md-3', 'col-md-6', 'col-md-3'];
    $('.portfolio li').each(function() {
    var index = $(this).index();
    $(this).addClass(sizes[index]);
});

我遇到的问题是我的数组运行一次​​,这意味着这些类只会分配给前 5 个 <li>项目(与我的数组相同数量),但随后停止运行。

有没有办法重复该数组模式以继续运行并将类应用到 <li>随着列表增长的元素?

谢谢。

最佳答案

您可以使用索引并将其除以数组的长度,以获得动态添加的li的实际索引

像这样更新你的jquery代码

$(function(){
    var sizes = ['col-md-6', 'col-md-6', 'col-md-3', 'col-md-6', 'col-md-3'];
    $('.portfolio li').each(function() {
        var index = $(this).index();

        var val = index % sizes.length; // this gives you the remainder n u can use that as an index.
        console.log('index - ' + index + ' | val - ' + val);
        $(this).addClass(sizes[val]);
    });
});

这是一个 JSFIDDLE 。我为李提供了一些自定义颜色,使其看起来更明显。希望这有帮助

关于jquery - 将特定类添加到 <li> 元素并重复添加模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513162/

相关文章:

javascript - iCheck - 设置 sibling 的颜色

javascript - 消除隐藏延迟

javascript - 无法在表中动态添加新行

jquery - 无法让 onchange() 在 woocommerce 中工作

javascript - 悬停时显示/隐藏 jquery 函数的平滑过渡?

javascript - 从 JSON 创建数组 - Javascript

ASP.NET 控件到 HTML 标记的等价物

html - DOCTYPE声明IE问题

python - 如何减去两个无符号的 numpy 数组以给出带符号的结果?

c# - 在 C# 中将一维数组转换为二维数组以获取 AES 数据矩阵