2016-01-22 34 views
0

我有以下的HTML表格最后一和最后一行时:jQuery的 - 在表中查找

<table id="jTable"> 

    <tr> 
    <td>No</td> 
    <td>Competition</td> 
    <td>John</td> 
    <td>Adam</td> 
    <td>Robert</td> 
    <td>Paul</td> 
    </tr> <tr> 
    <td>1</td> 
    <td>Swimming</td> 
    <td>1:30</td> 
    <td>2:05</td> 
    <td>1:15</td> 
    <td>1:41</td> 
    </tr> <tr> 
    <td>2</td> 
    <td>Running</td> 
    <td>15:30</td> 
    <td>14:10</td> 
    <td>15:45</td> 
    <td>16:00</td> 
    </tr> <tr> 
    <td>3</td> 
    <td>Shooting</td> 
    <td>70%</td> 
    <td>55%</td> 
    <td>90%</td> 
    <td>88%</td> 
    </tr> <tr> 
    <td>Total</td> 
    <td>Blablabla</td> 
    <td>1000</td> 
    <td>1000</td> 
    <td>1000</td> 
    <td>1000</td> </tr> 
</table> 

我试图做的是隐藏除了第一个所有行中,在最后一个和最后一个之前。以下是我的工作方式:

$('#jTable').find('tr:gt(0):not(:last)').slideToggle(); 

这个jQuery脚本只保留第一行和最后一行。知道我必须使用jQuery 1.7.1(所以我不能使用nth-last-child属性)的事实,我正在寻找一种方法来选择前一行。

+0

只有做到'$( '#JTable的TR:第一')隐藏(); '和$('#jTable tr:last')。hide();'两次。上':last'第一次隐藏第一个倒数第二个倒数第二个将是你的最后一个,也是隐藏的。 :D –

回答

1

你可以找到lastbefore lasttr使用eq()功能如下。

var len = $('#jTable tr').length; 
var first_row = $('#jTable tr').eq(0); 
var last_row = $('#jTable tr').eq(len - 1); 
var before_last_row = $('#jTable tr').eq(len - 2); 

更新

$('#jTable tr').not(first_row).not(last_row).not(before_last_row).slideToggle(); 
+0

你能为此做一个工作小提琴吗? –

+0

'downvoting'之前,请让我知道我的问题是什么。 – Azim

+0

感谢您的回答。但是,我应该如何将该变量用于find()函数? – Traffy

0

考虑这些功能和尝试。 。

$(document).ready(function(){ 
 
$('#jTable tr:first').slidetoggle() 
 
$('#jTable tr:last').slidetoggle() 
 
$('#jTable tr:last').prev().slidetoggle() 
 
})

+0

感谢您的回答。但是,我应该如何将该变量用于find()函数? – Traffy

+0

是的,我正在编辑,2分钟 – Sravan

0

你并不需要使用find()

$(document).ready(function(){ 
 
$("#jTable tr").not($("#jTable tr:first")).not($("#jTable tr:last").prev()).slideToggle(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="jTable"> 
 

 
    <tr> 
 
    <td>No</td> 
 
    <td>Competition</td> 
 
    <td>John</td> 
 
    <td>Adam</td> 
 
    <td>Robert</td> 
 
    <td>Paul</td> 
 
    </tr> <tr> 
 
    <td>1</td> 
 
    <td>Swimming</td> 
 
    <td>1:30</td> 
 
    <td>2:05</td> 
 
    <td>1:15</td> 
 
    <td>1:41</td> 
 
    </tr> <tr> 
 
    <td>2</td> 
 
    <td>Running</td> 
 
    <td>15:30</td> 
 
    <td>14:10</td> 
 
    <td>15:45</td> 
 
    <td>16:00</td> 
 
    </tr> <tr> 
 
    <td>3</td> 
 
    <td>Shooting</td> 
 
    <td>70%</td> 
 
    <td>55%</td> 
 
    <td>90%</td> 
 
    <td>88%</td> 
 
    </tr> <tr> 
 
    <td>Total</td> 
 
    <td>Blablabla</td> 
 
    <td>1000</td> 
 
    <td>1000</td> 
 
    <td>1000</td> 
 
    <td>1000</td> </tr> 
 
</table>

+0

@Traffy请检查我的答案。运行代码段。 –

+0

谢谢!但是,我需要保留第一行。这仍然是可能的吗? – Traffy

+0

请给我你需要的行吗? ':first'?然后从我的代码中排除该行。 –