代码之家  ›  专栏  ›  技术社区  ›  Amra

jquery使用.nextUntil()

  •  1
  • Amra  · 技术社区  · 16 年前

    我正在尝试生成一个jquery脚本,以使所有tr元素从一个具有类top的表中可单击,并且当一个具有类top的tr被单击时,下面所有具有类bt的tr都将滑动切换,直到有另一个tr class top为止。

    我试了好几种方法,但都不管用,我想我的选择程序有问题。

    有人能帮忙吗?

    here

    我创建的脚本之一是:

    <html>
    <head>
    <script type="text/javascript">
    $("tr .top").click(function () {
      $('tr .bt').nextUntil('tr:not(.bt)').slideToggle("slow");
      )};
    </script>
    </head>
    <body>
     <table>
        <tr class="top">
          <td>top row 1</td>
          <td>top row 1</td>
          <td>top row 1</td>
        </tr>
        <tr class="bt">
          <td>bt row 1</td>
          <td>bt row 1</td>
          <td>bt row 1</td>
        </tr>
        <tr class="bt">
          <td>bt row 1</td>
          <td>bt row 1</td>
          <td>bt row 1</td>
        </tr>
        <tr class="bt">
          <td>bt row 1</td>
          <td>bt row 1</td>
          <td>bt row 1</td>
        </tr>
        <tr class="top">
          <td>top row 2</td>
          <td>top row 2</td>
          <td>top row 2</td>
        </tr>
        <tr class="bt">
          <td>bt row 2</td>
          <td>bt row 2</td>
          <td>bt row 2</td>
        </tr>
        <tr class="bt">
          <td>bt row 1</td>
          <td>bt row 1</td>
          <td>bt row 1</td>
        </tr>
      </table>
    </body>
    </html>
    
    3 回复  |  直到 16 年前
        1
  •  1
  •   Nick Craver    16 年前

    你的代码需要一些柚木,这是:

    $("tr .top").click(function () {
      $('tr .bt').nextUntil('tr:not(.bt)').slideToggle("slow");
      )};
    

    $("tr.top").click(function () {
      $(this).nextUntil('tr:not(.bt)').slideToggle("slow");
    });
    

    这个班是 <tr> 不在下面就没有空间了。你想从 $(this) <tr> )穿越时,最后 )}; 不正常,应该是 }); 关闭函数然后 .click() 打电话。

    Here's the updated/working version

    $("tr.top").click(function () {
      $(this).nextUntil('tr:not(.bt)').animate({ opacity: "toggle" });
    });
    

    Test that version here

        2
  •  2
  •   Richard Sitze    13 年前
     $("tr .top").click(function () {
      $('tr .bt').nextUntil('tr .top').slideToggle("slow");
      )};
    

    我想这是个工作。。

        3
  •  1
  •   kennytm    16 年前
    $("tr.top").click(function () {
    //   ^
      $('tr.bt').nextUntil('tr:not(.bt)').slideToggle("slow");
    //     ^
    // And I think you should use $(this) here instead of $('tr.bt')
    //  otherwise you cannot toggle the first .bt row,
    //  but all the rest will be toggled regardless of which group.
    });
    

    中间不应该有空格 tr 以及 .

    "a .b"
    

    全部匹配 属于 a 哪个有课 b

    "a.b"
    

    全部匹配 b类 .