【问题标题】:jQuery exclude first, second and last table rowjQuery排除第一,第二和最后一个表格行
【发布时间】:2017-07-09 15:17:23
【问题描述】:

我排除了第一个和最后一个表格行来计算摘要。现在添加了一个更多的合并标题。所以我也需要跳过第二行。所以我需要跳过

第一个,第二个和最后一个。我添加了 tr:not(:first,second,last) 但它不起作用。我可以知道如何跳过此脚本中的第二行表格。

谢谢,

$(".printer-type tr:not(:first, last) td:last-child").text(function() {
  var totalVal = 0;
  $(this).prevAll().each(function() {
    totalVal += parseFloat($(this).children('.txtfld').val()) || 0;
    //totalVal += parseInt( );
  });
  return parseFloat(totalVal).toFixed(1);
});

【问题讨论】:

  • 没有:second选择器,使用:eq(1)
  • 最好将类分配给行,而不是按位置选择它们。
  • $(".printer-type").not(':first').not(':first').not(':last') 怎么样,虽然应该有更短的对此的表示。
  • $(".printer-type").not(':first').not(':first').not(':last') 也有效。谢谢谜语人

标签: javascript jquery


【解决方案1】:

您可以使用:lt(index)

选择匹配集中index小于索引处的所有元素。

$(".printer-type tr:not(:lt(2), :last) td:last-child")

:gt(index)也可以用

选择匹配集中index大于索引处的所有元素。

$(".printer-type tr:gt(1):not(:last) td:last-child")

【讨论】:

  • 应该是:lt(2)
【解决方案2】:

可以使用slice() 代替选择器

$('.printer-type tr').slice(1,-1).children(':last-child')

DEMO

【讨论】:

    【解决方案3】:

    :last 用于最后一项,:eq(index) 用于第二项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2015-08-20
      相关资源
      最近更新 更多