jquery nextAll 并跳过第一个元素

发布于 2024-10-02 07:33:36 字数 2266 浏览 0 评论 0原文

我需要为每个具有“topRow”类的 TR 在第一个子 TD 上添加一个单击事件,该事件会切换具有“subRow”类的所有下一个 TR 行,跳过 TR.topRow 下的第一个 TR。

表示例

<table>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
</table>

jquery 我目前有

$("tr.topRow td:first-child").click(function () {
    $(this).parent().nextUntil('tr:not(tr.subRow):gt(1)').slideToggle();
});

尝试过的另一件事,

$("tr.topRow td:first-child").click(function () {
    $(this).parent().nextUntil('tr:gt(1):not(tr.subRow):gt(1)').slideToggle();
});

但我没有得到所需的结果。

I need to add a click event on fist child TD for each TR with class “ topRow” which toggle all next TR rows with class “subRow” skiping the first TR under TR.topRow.

Table example

<table>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="topRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="otherRow">
        <td colspan="3">Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
    <tr class="subRow">
        <td>text</td>
        <td>Text</td>
        <td>Text</td>
    </tr>
</table>

jquery I have at the moment

$("tr.topRow td:first-child").click(function () {
    $(this).parent().nextUntil('tr:not(tr.subRow):gt(1)').slideToggle();
});

Anther thing I tried

$("tr.topRow td:first-child").click(function () {
    $(this).parent().nextUntil('tr:gt(1):not(tr.subRow):gt(1)').slideToggle();
});

But I dont get the result required.

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

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

发布评论

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

评论(1

紧拥背影 2024-10-09 07:33:36

您只需在其中添加 .next() 即可跳过(这也简化了事情),如下所示:

$("tr.topRow td:first-child").click(function () {
  $(this).parent().next().nextUntil('tr.topRow').slideToggle();
});

您可以在此处进行测试

You can just throw a .next() in there for the skip (which also simplifies things), like this:

$("tr.topRow td:first-child").click(function () {
  $(this).parent().next().nextUntil('tr.topRow').slideToggle();
});

You can test it out here.

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