2016-01-22 3 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 тр: первый') скрыть(); 'и' $ ('# jTable tr: last'). hide(); 'два раза. on ': last' первый раз прячется 1-й последний, а затем 2-й последний будет вашим последним и' hide', который также. : D –

ответ

1

last и before 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); 

Update

$('#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'? затем исключите эту строку из моего кода. –

Смежные вопросы