2009-10-29 31 views
23

Tengo una parte del DOM que me gustaría insertar en mi página. Actualmente estoy a ciegas usando:jquery: using appendTo en la segunda a la última fila de la tabla

$(myblob).appendTo(someotherblob); 

? ¿Cómo hago la misma cosa, y agrega myblob a la penúltima fila que se encuentra dentro de someotherblob. someotherblob en este caso es una tabla y quiero inyectar una fila arriba de la penúltima.

Respuesta

67
$('#mytable tr:last').before("<tr><td>new row</td></tr>") 
0

creo que desea agregar una fila por cada fila de la tabla entre la segunda y la última fila.

en este caso intento:

var rows=someotherblob.find("TR"); 
var nrows=rows.length; 
    rows.slice(1,(nrows-2)).each(function(){ 
    $(this).append(myblob); 
    }) 
1

Tenga en cuenta que con la anterior() ya los elementos deben ser insertados en el documento (no se puede insertar un elemento antes de que otro si no es en la página).

Así que hay que insertar primero someotherblob:

$('selector to insert someotherblob at') 
    .append(someotherblob) 
     .find('table tr:last') 
      .prev() 
      .before(myblob); 
0

Un poco de un tiro en la oscuridad, pero supongo que tienes un pie de página, o tal vez incluso la entrada de datos, en la parte inferior de una tabla, y desea agregar filas a los datos, antes del pie de página. En ese caso, se debe reestructurar su mesa para esto:

<table id="myTable"> 
    <thead> 
     <tr><!-- header row(s) --></tr> 
    </thead> 
    <tfoot> 
     <tr><!-- footer row(s) --></tr> 
    </tfoot> 
    <tbody> 
     <tr><!-- exciting and possibly dynamically inserted data goes here --></tr> 
    </tbody> 
</table> 

Sí, tbody viene después tfoot. Wierd, ¿eh?

A continuación, puede utilizar este:

$("#myTable tbody").append(newrow); 
0

Tan simple como esto:

$("#TableName tr:last").prev().before("<tr><td>Hello World</td></tr>"); 
2

También puede seleccionar la fila por el selector de índice.

$('#mytable tr').eq(-1).before("<tr><td>new row</td></tr>") 

Aquí eq se utiliza para seleccionar la última fila. eq es índice cero y el índice negativo comienza desde el último. entonces usé -1 en el índice.

1
  • I aprecia con respuesta dada por orin que era this one.

  • Lo probé y descubrí que la columna requerida se desplazaba literalmente por encima de la tabla de entrada. Es porque no uso la etiqueta thead para la columna del encabezado. Una vez más, comencé a buscar la respuesta y obtuve mi propia solución.

  • Así que aquí está: En mi caso, se requería mostrar total de de todas las entradas en cada columna de tipo de número único. No me fue posible hacer cálculos a menos que todas las filas se completen sobre la marcha.

HTML:

<tr class="gTotal"> 
     <th colspan="4" class="head">Grand Total</th> 
     <th><?php echo $grandTtlResumeSntCnt; ?></th> 
     <th><?php echo $grandTtlEvalCnt; ?></th> 
     <th><?php echo $grandTtlUniqEvalCnt; ?></th> 
     <th><?php echo $grandTtlResCnt; ?></th> 
     <th><?php echo $grandTtlUniqResCnt; ?></th> 
</tr> 
</table> 

Jquery:

$('.gTotal').insertBefore('table>tbody>tr:nth-child(2)'); 

que me haga saber si contesto a su pregunta.

1
$('#mytable tr:last').prev().after("<tr><td>new row</td></tr>") 
Cuestiones relacionadas