【问题标题】:jQuery selector for every row except the first on every table except firstjQuery 选择器的每一行,除了第一个之外的每个表上的第一行
【发布时间】:2016-09-29 06:41:18
【问题描述】:

我想对每个表格行的最后一个单元格应用右对齐,跳过页面上的第一个表格并跳过每个表格的第一行。

我写了以下内容:

$("table:gt(0) tr:gt(0) td:last-child").css("text-align", "right");
  1. 选择第一个之后的表。很好。
  2. 每行的最后一个单元格右对齐。很好。
  3. 结果集中第一个表的第一行被跳过。很好。
  4. 结果集中后续表格的每一行都应用了该样式。不好。

我尝试将函数传递给包装集上的“每个”方法,但这不起作用。有什么想法吗?

【问题讨论】:

    标签: jquery css-selectors


    【解决方案1】:

    你快到了。

    $("table:gt(0)").find("tr:gt(0) td:last-child").css("text-align", "right");
    

    否则,tr:gt(0) 始终为真,因为 jquery 正在查看每个 tr,而不是每个表中的每个 tr。

    【讨论】:

      【解决方案2】:

      试试

      $("table:gt(0) tr:not(:first-child) td:last-child").css("text-align", "right");
      

      因为 gt(0) 仅指您正在构建的 jQuery 对象中的索引,而不是表。

      【讨论】:

        【解决方案3】:

        使用 DOM 选择表格并使用 jQuery 将样式应用于表格有什么问题?代码行太多?

        【讨论】:

          【解决方案4】:
          $("table:gt(0) tr").each(){
               if($(this).not(":first-child")){
                     $(this).find("td:last-child").css("text-align","right");
               }
          }
          

          可能不是最好的方法,但我会这样做。

          【讨论】:

          • 谢谢,这看起来也是个不错的方法。我尝试了类似的方法,但没有完全正确。
          【解决方案5】:

          可能有更好的方法,但一个想法可能是在每个表的第一行添加一个您不希望具有该样式的类,并使用 not(.myclass) 将其过滤掉。

          同样将类添加到您确实希望样式转到的表中。

          【讨论】:

            猜你喜欢
            • 2023-03-24
            • 2011-08-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-11
            • 2018-11-11
            • 2014-04-29
            • 2011-07-01
            相关资源
            最近更新 更多