una tbody tabla llenar filas fila eliminar dinámicos datos controles con columna añadir agregar jquery html

jquery - tbody - llenar tabla html con javascript



¿Cómo agregar filas a una tabla usando jQuery? (7)

Hola, estaba intentando agregar una fila a una tabla usando jQuery, pero no está funcionando.
¿Cuál podría ser la razón?

Y, ¿puedo ponerle algo de valor a la fila recién agregada ...?

Aquí está el código:

<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(''a'').click(function() { $(''#myTable'').childs(''tr'').append(''<tr class="child"><td>blahblah<//td></tr>''); }); </script> <title></title> </head> <body> <a href="">Link</a> <table id="myTable"> <tbody> <tr> <td> test </td> </tr> </tbody> </table> </body> </html>


Debes adjuntar a la tabla y no a las filas.

<script type="text/javascript"> $(''a'').click(function() { $(''#myTable'').append(''<tr class="child"><td>blahblah<//td></tr>''); }); </script>


El siguiente código funciona

<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> function AddRow() { $(''#myTable'').append(''<tr><td>test 2</td></tr>'') } </script> <title></title> </head> <body> <input type="button" id="btnAdd" onclick="AddRow()"/> <a href="">test</a> <table id="myTable"> <tbody > <tr> <td> test </td> </tr> </tbody> </table> </body> </html>

Tenga en cuenta que esto funcionará a partir de jQuery 1.4 incluso si la tabla incluye un elemento <tbody> :

jQuery desde la versión 1.4 (?) detecta automáticamente si el elemento que está intentando insertar (usando cualquiera de los métodos append (), prepend (), before () o after ()) es un <tr> y lo inserta en el primero <tbody> en su tabla o envuélvalo en un nuevo <tbody> si no existe uno.


Siempre uso este código a continuación para más legible

$(''table'').append([ ''<tr>'', ''<td>My Item 1</td>'', ''<td>My Item 2</td>'', ''<td>My Item 3</td>'', ''<td>My Item 4</td>'', ''</tr>'' ].join(''''));

o si tiene tbody

$(''table'').find(''tbody'').append([ ''<tr>'', ''<td>My Item 1</td>'', ''<td>My Item 2</td>'', ''<td>My Item 3</td>'', ''<td>My Item 4</td>'', ''</tr>'' ].join(''''));


Supongo que desea agregar esta fila al elemento <tbody> , y simplemente al usar append() en la <table> se insertará la <tr> fuera del <tbody> , con resultados quizás no deseables.

$(''a'').click(function() { $(''#myTable tbody'').append(''<tr class="child"><td>blahblah</td></tr>''); });

EDITAR: Aquí está el código fuente completo, y de hecho funciona: (Note el $(document).ready(function(){}); que no estaba presente antes.

<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $(''a'').click(function() { $(''#myTable tbody'').append(''<tr class="child"><td>blahblah</td></tr>''); }); }); </script> <title></title> </head> <body> <a href="javascript:void(0);">Link</a> <table id="myTable"> <tbody> <tr> <td>test</td> </tr> </tbody> </table> </body> </html>


Tal vez esta es la respuesta que estás buscando. Encuentra la última instancia de <tr /> y agrega la nueva fila después de ella:

<script type="text/javascript"> $(''a'').click(function() { $(''#myTable tr:last'').after(''<tr class="child"><td>blahblah<//td></tr>''); }); </script>


Tratar:

$("#myTable").append("<tr><%= escape_javascript( render :partial => name_of_partial ) %></tr>");

Y en el partial , deberías tener:

<td>row1</td> <td>row2</td>


Probado y trabajando

Para agregar como primera fila en la tabla

$(".table tbody").append("<tr><td>New row</td></tr>");

Para agregar como última fila en la tabla

$(".table tbody").prepend("<tr><td>New row</td></tr>");