【问题标题】:loop through siblings with a specific class in jquery在 jquery 中循环通过具有特定类的兄弟姐妹
【发布时间】:2025-12-25 09:10:11
【问题描述】:

我有 tr 类 firstrow 和 tr 类称为 addrows 。 addrows 类总是在 firstrow 类之后,我想计算每个 firstrow tr 之后的 addrow tr 的数量。在我的示例中,它应该是 1 和 6 。这是我的代码。

<table id="sdx-O_BAR_added" class="roomtypeadded">
<tbody>
<tr class="header">
</tr>
<tr class="header">
</tr>
<tr class="firstrow">
</tr>
<tr class="addrows">
</tr>
<tr class="header">
</tr>
<tr class="header">
</tr>
<tr class="firstrow">
</tr>
<tr class="addrows">
</tr>
<tr class="addrows">
</tr>
<tr class="addrows">
</tr>
<tr class="addrows">
</tr>
<tr class="addrows">
</tr>
<tr class="addrows">
</tr>
</tbody>
</table>

我不知道该怎么做,我尝试使用 jquery siblings()next()。但不能这样做,请帮忙。 :(

【问题讨论】:

  • 它只是您想要的实际数字,还是您想要返回匹配元素的集合?
  • yap 。我需要重新返回匹配的元素。谢谢

标签: php jquery zend-framework


【解决方案1】:

你可以试试$.nextAll()函数:

$('table tr.firstrow').nextAll('tr.addrows').length;

这将为您提供tr.firstrow 元素后面的所有行的总数。

如果您想获取每个 tr.firstrow 的以下 .addrows 类元素的数组,您可能会发现 jQuery 的 $.map() 函数更有用:

var counts = $('table tr.firstrow').map(function(){
    return $(this).nextUntil(':not(.addrows)').length;
});

这将返回一个数字数组 - 实际上是小计(例如 [1, 6])。

【讨论】:

    【解决方案2】:

    试试 $("firstrow").each() 在这个函数里面尝试做 $(this).next()

    【讨论】:

      【解决方案3】:

      这应该可以。

      $("tr.firstrow").siblings("tr.addrows")
      

      【讨论】:

      • 没有。我认为这将返回所有带有类 addrows 的行,所以这不是我想要的