排除.not中的多个元素,包括$ this

时间:2014-08-17 14:00:20

标签: jquery html

以下内容隐藏了所有表行,不包括具有类.accordion.course_header的行。

  $('#course_list').find("tr").not('.accordion, .course_header').hide();

如何排除$(this).next("tr")表格行?这是假设this是刚刚点击的tr

完整详情

我使用this solution在手风琴效果的桌子上工作。按原样解决方案,如果我点击一行,其子项将保持扩展状态。请注意,当您单击行in the jsfiddle时,它会正确扩展子项,但是当我再次单击该行时,我希望它关闭子项。

我目前的情况:

var $course_list = $('#course_list');
$course_list.find("tr").not('.accordion, .course_header').hide();
$course_list.find("tr").eq(0).show();

$course_list.find(".accordion").click(function(){
   $course_list.find("tr").not('.accordion, .course_header').hide();
   $(this).next("tr").fadeToggle('fast');
});

以下是表格布局:

<table id="course_list">
  <thead>
    <tr class="course_header">
      <th>Date</th>
      <th>Presenter</th>
      <th>Title</th>
     </tr>
  </thead>
  <tbody>
    <tr class="accordion">
      <td>09.26.14</td>
      <td>Arthur Dent</td>
      <td>Example Course</td>
    </tr>
    <tr>
      <td colspan="4">
        COURSE DETAILS GO HERE
      </td>
    </tr>

    <tr class="accordion">
      <td>09.30.14</td>
      <td>Winston Smith</td>
      <td>Another Example</td>
    </tr>
    <tr>
      <td colspan="4">
        COURSE DETAILS GO HERE
      </td>
    </tr>
  </tbody>
</table>

1 个答案:

答案 0 :(得分:1)

您是否尝试将其附加到链中:

var next = $(this).next("tr");
$course_list.find("tr").not('.accordion, .course_header').not(next).hide();