【问题标题】:JQuery Slice AddClassjQuery 切片 AddClass
【发布时间】:2014-05-06 15:38:36
【问题描述】:

我有一段代码可以将类添加到菜单项:

$(document).ready(function() {
    $('#submenu ul li ul li').addClass("top4");
});

这很好用。但是我只想将该类应用于每个菜单项块的前 4 个。

我假设我可以使用slice

.slice(0,3)

但是下面的代码:

$(document).ready(function() {
    $('#submenu ul li ul li').slice(0,3).addClass("top4");
});

好像没用。

有什么想法吗?

【问题讨论】:

    标签: jquery addclass slice


    【解决方案1】:

    您可以使用:lt-selector,如下所示

    $(document).ready(function () {
        $('#submenu ul li ul').find('li:lt(4)').addClass("top4");
    });
    

    演示:Fiddle

    【讨论】:

    • 删除了我的答案,因为它基本上完全错误! +1 给你 :)
    • @andrew 看看如何在给定的场景中使用 slice - jsfiddle.net/arunpjohny/GQN6F/3
    • 任何想法为什么我的原件不起作用?我看不出有什么理由不这样做
    • 这是@ArunPJohny 对您的原始代码jsfiddle.net/arunpjohny/GQN6F/2的小提琴
    • @user2524219 因为$('#submenu ul li ul li') 将返回所有li 元素,所以当您说slice(0, 4) 时,它将返回整个列表中的前4 项,而不是每个菜单中的4 项
    【解决方案2】:

    您可以改用 :lt() 选择器:

    选择匹配中索引小于索引的所有元素 设置。

    $(document).ready(function() {
        $('#submenu ul li ul').find('li:lt(4)').addClass("top4");
    });
    

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      相关资源
      最近更新 更多