2017-07-28 72 views
1

我正在用C#,.NET Framework 4.7和jQuery 3.1.1开发ASP.NET MVC应用程序。隐藏特定行后的所有行

我有一个表的视图:

<table id="myTable"> 
<tbody> 
    <tr> ... </tr> 
    <tr> ... </tr> 
    <tr> ... </tr> 
    <tr id="row_x"> ... </tr> 
    <tr> ... </tr> 
    <tr> ... </tr> 
    <tr> ... </tr> 
    ... 

我想隐藏的所有行<tr id="row_x"> ... </tr>下行,但我不知道如何访问这些行。我是否需要为所有人设置一个ID?

我想过用<div>包围它们,但我认为这不是一个好主意或可能。

+0

你想隐藏所有'td',所以你可以使用'$(“#row_x td”)。hide()'如果你想隐藏'tr'后的所有内容,你应该使用'$ “#row_x”)。nextAll()。hide()' –

回答

3

您可以使用jQuery的方法nextAll()

$("#row_x").nextAll().hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="myTable"> 
 
    <tbody> 
 
    <tr> 
 
     <td>Row 1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 2</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 4</td> 
 
    </tr> 
 
    <tr id="row_x"> 
 
     <td>Row 5</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 6</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 7</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 8</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 9</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

$("#row_x").nextAll('tr').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="myTable"> 
 
    <tbody> 
 
    <tr> 
 
     <td>Row 1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 2</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 4</td> 
 
    </tr> 
 
    <tr id="row_x"> 
 
     <td>Row 5</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 6</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 7</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 8</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row 9</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

刚刚尝试这样

$('#row_x').nextAll('tr').hide(); 
+0

这看起来完全像我的回答 – H77

+0

是的,这是唯一的解决方案,有一些修改:) –

+0

'tr'选择器没有必要,因为唯一的兄弟姐妹是行。 – H77