【问题标题】:Add Class to all but first table [duplicate]将类添加到除第一个表之外的所有表[重复]
【发布时间】:2017-07-24 05:33:22
【问题描述】:

我有一个页面将动态创建多个表格元素。

我需要为除第一个表之外的每个表添加一个类。

这是我尝试过的:

$(".print-tables").each(function (i, value) {
    if (i !== 0) {
        $(".print-tables").addClass("skip-row");
    }
});

这不起作用。

什么需要更正或编辑?

感谢任何帮助。

【问题讨论】:

  • 您很接近但需要在循环内一次只选择一个表。您正在将类添加到每个 .print-tables 循环的每次迭代中。
  • 在循环内部,将 $(".print-tables").addClass("skip-row"); 更改为 $(value).addClass("skip-row");

标签: javascript jquery each


【解决方案1】:

所需的行数更少;只需使用notfirst 选择器来忽略第一个元素。

$(".print-tables:not(:first)").addClass("skip-row");

您可以使用.print-tables:gt(0),但以上内容更具语义。

您正在迭代,但每次都将类添加到整个选择中。要按照自己的方式进行操作,您需要使用 $(this)。

$(".print-tables").each(function (i, value) {
    if (i !== 0) {
        $(this).addClass("skip-row");
    }
}

Fiddle

【讨论】:

    【解决方案2】:

    您可以直接将伪类:not(:first) 放入您的选择器

    $(".print-tables:not(:first)").addClass('skip-row')

    【讨论】:

      【解决方案3】:

      这应该可行:

      $('.print-tables').each(function (i, value) {
          if (i !== 0) {
              $(this).addClass('skip-row');
          }
      });
      

      https://jsfiddle.net/659xzwnu/

      【讨论】:

        猜你喜欢
        • 2019-02-05
        • 1970-01-01
        • 2021-01-28
        • 2018-01-25
        • 2010-09-27
        • 1970-01-01
        • 2014-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多