45 votos

jquery - obtener todas las filas excepto la primera y la última

quiero agregar dinámicamente una clase para todas las filas de una tabla, excepto la primera y la última fila. ¿cómo puedo hacer esto sin la asignación de una clase css a las filas de identificarlos. Yo estoy haciendo todo, pero la primera fila en la actualidad con

$("#id").find("tr:gt(0)")

necesito combinar esto con not("tr:last") de alguna manera, tal vez?

90voto

Tatu Ulmanen Puntos 52098

Caída de la gt(), como yo supongo que es un poco más lento de lo :first.

Uso not() en conjunción con :first y :last:

$('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');

La mayoría de los navegadores automáticamente agregar un tbody elemento en la tabla de marcado si que falta, que es la razón por la inmediata niños selector estaba fallando – no hubo <tr> elementos como una forma inmediata de los niños a la <table> etiqueta.

No estoy 100% seguro de que esta es la manera en todos los navegadores de hacerlo, por lo que sería más seguro para añadir la de <tbody> manualmente. De lo contrario, usted necesita un poco de oler y no como una línea:

if($('table#tbl > tbody').size() > 0) {
    $('table#tbl > tbody > tr').not(':first').not(':last').addClass('highlight');
} else {
    $('table#tbl > tr').not(':first').not(':last').addClass('highlight');
}

Espero que esto soluciona tu problema!

13voto

mikkelz Puntos 178

Intente esto:

.not(':first').not(':last')

11voto

Sumit Puntos 394

¿por qué no esto?

$('table tr:not(:first-child):not(:last-child)');

a mí me funciona.

2voto

Stuart G Puntos 11

Extraño las sugerencias publicado no funciona, todos ellos deben trabajar! PERO...

Si no trabajo, hacerlo de esta manera.... un poco más lento, pero DEBEN TRABAJAR!! PROBAR:

$('table#tbl tr').addClass('highlight');
$('table#tbl tr:first-child').removeClass('highlight');
$('table#tbl tr:last-child').removeClass('highlight');

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X