对每个第 1 项和第 4 项应用一个类

发布于 2024-11-28 02:13:22 字数 642 浏览 1 评论 0原文

我有一个包含 16 项的清单。有 4 行,每行 4 个项目。 如何将类“.first”添加到每行的第一项,将“.fourth”添加到每行的第四项。

结果:

<ul>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
</ul>

I have a list of 16 items. There are 4 rows with 4 items on each row.
How can I add a class '.first' to the first item of each row and '.fourth' to the fourth item of each row.

Resulting:

<ul>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
  <li class="first"></li>
  <li></li>
  <li></li>
  <li class="fourth"></li>
</ul>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梨涡 2024-12-05 02:13:22

试试这个:

$(function(){
     // You can use a more specific li selector as per your requirement
    $("li").each(function(a, b){
        if(a%4 == 0){
            $(b).addClass("first");
        }
        if(a%4 == 3){
            $(b).addClass("fourth");
        }
    });
});

编辑:

使用nth-child:

$(function(){
    var ul = $("ul");//You can use more specific UL
    ul.find(":nth-child(4n-3)").addClass("first");
    ul.find(":nth-child(4n)").addClass("fourth");
});

工作示例:http://jsfiddle.net/ qmHNQ/

Try this:

$(function(){
     // You can use a more specific li selector as per your requirement
    $("li").each(function(a, b){
        if(a%4 == 0){
            $(b).addClass("first");
        }
        if(a%4 == 3){
            $(b).addClass("fourth");
        }
    });
});

EDIT:

Using nth-child:

$(function(){
    var ul = $("ul");//You can use more specific UL
    ul.find(":nth-child(4n-3)").addClass("first");
    ul.find(":nth-child(4n)").addClass("fourth");
});

Working example: http://jsfiddle.net/qmHNQ/

空宴 2024-12-05 02:13:22

听起来您想使用 CSS 选择器 :nth-child 或 :nth-of-type。您可以在 jQuery 中使用它们来添加类,也可以直接将它们用作伪类并跳过添加额外的属性。

It sounds like you want to use the CSS selectors :nth-child or :nth-of-type. You can use them in jQuery to add the classes, or you can use them as pseudo-classes directly and skip adding the extra attributes.

凡间太子 2024-12-05 02:13:22

使用each(): http://api.jquery.com/jQuery.each/

jQuery.each('ul li', function(indexInArray, valueOfElement){
    if ((indexInArray % 4) == 0) { $(this).addClass('first'); }
    if ((indexInArray % 4) == 3) { $(this).addClass('fourth'); }
});

Use each(): http://api.jquery.com/jQuery.each/

jQuery.each('ul li', function(indexInArray, valueOfElement){
    if ((indexInArray % 4) == 0) { $(this).addClass('first'); }
    if ((indexInArray % 4) == 3) { $(this).addClass('fourth'); }
});
Spring初心 2024-12-05 02:13:22

我想知道您是否可以使用“:even”过滤器两次。第一次,你会得到所有能被 2 整除的数,第二次 :even 会给你所有偶数...能被 4 整除。

$("li:gt(0):even:even").addClass("fourth");

要设置第 1 个、第 5 个等...你可能会得到所有li 除外第一个并应用“第一”类。然后,也设置第一个。

$("li:first").addClass("first");
$("li:gt(1):even:even").addClass("first");

好吧……这确实有效,但看起来像是一次性的。这应该有效。

I'm wondering if you can use the ":even" filter twice. The first time, you would get all the ones divisible by 2, the second :even would give you all the evens of that... divisible by 4.

$("li:gt(0):even:even").addClass("fourth");

To set the 1st, 5th, etc... you could probably get all the li's except the first and apply the class "first". Then, set the first one as well.

$("li:first").addClass("first");
$("li:gt(1):even:even").addClass("first");

Ok... this does work, but it looks like it was one off. This should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文