2012-07-18 22 views
17

Duplicar posible:
Add table row in jQueryañadir una nueva fila en una tabla

Quiero añadir una nueva fila a mi mesa en un evento de cambio. Aquí es lo que tengo hasta ahora:

$('#CourseID').change(function() { 
    $('#CourseListTable > tr > td:last').append('<td>...</td>'); 
}); 

aquí es mi mesa:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>  
<table id="CourseListTable"> 
    <tr> 
     <th>Course ID</th> 
     <th>Course Section</th> 
     <th>Level</th>    
    </tr> 
    <tr> 
     <td><select name="CourseID" id="CourseID"></select></td> 
     <td><select name="CourseSection" id="CourseSection"></select></td> 
     <td><select name="Level" id="Level"></select></td>    
    </tr> 
</table> 

no soy capaz de conseguir que esto funcione. Me falta algo aquí ¿alguien me puede decir dónde está mi error?

Gracias de antemano.

+0

Si agrega las secciones 'thead' y' tbody' a su tabla, podría simplemente agregar la nueva fila al tbody ... Además, me acabo de dar cuenta de que está agregando una celda. ¿Quisiste anexar una celda o una fila? – MrOBrian

Respuesta

8

Menciona Anexar Fila pero en su código está agregando solo celdas.

Si es necesario añadir en realidad una fila completa, intente esto:

$('#CourseID').change(function() { 
    $('<tr/>').append('<td>...</td>').insertAfter('#CourseListTable tr:last'); 
}); 
+0

Parece que se agrega una fila, pero solo agrega tres puntos '...' a la nueva fila. Quiero mostrar las tres selecciones que tengo en la td en la nueva fila. – user793468

+0

Los puntos en el ejemplo que he proporcionado son solo rellenos espaciales. Debería reemplazar eso con el HTML que desea anexar. – Chandu

+0

También en cuenta, la ID de un elemento HTML shuold es única en toda la página. Asegúrate de no crear elementos html con la misma ID – Chandu

6

Esta línea:

$('#CourseListTable > tr > td:last').append('<td>...</td>'); 

añade un TD (<td>...</td>) a un TD existente (td:last); quieres agregarlo a un TR, ej.

$('#CourseListTable > tr').append('<td>...</td>'); 

Por supuesto, usted ha mencionado que quieren añadir una nueva fila , en cuyo caso no deberías estar añadiendo un <td> en absoluto, usted debe estar añadiendo un <tr> (y se debe adjuntar a la mesa , obviamente).

3
$('#CourseID').change(function() { 
    $('#CourseListTable > tbody > tr:eq(1)').append('<td>...</td>'); 
}); 
0

Si desea agregar una nueva fila que hay que añadir un tr

$('#CourseListTable tr:last').after('<tr><td>...</td><td>...</td><td>...</td></tr>'); 
0

Debe utilizar after vez , append agregará el elemento dentro del tr.

$('#CourseID').change(function() { 
    $('#CourseListTable tr:last').after('<tr><td>test</td><td>test</td><td>test</td></tr>'); 
}); 
Cuestiones relacionadas