Hola.
Tengo una tabla a la cual le agrego las filas al llenar un formulario, despues de esto necesito sacar los valores de la tabla para enviarlos a la aplicacion, pero no me deja sacar los valores.
Este es el codigo:
$('#agregar-presentacion').click(function() {
//Aqui saco los valores del formulario y lo agrego a la tabla
$('#lista-presentaciones').append('<tr><td><input type="checkbox" name="presentacion" value="'+$('#presentacion').val()+'"></td>'+
'<td>'+$('#presentacion').val()+'</td>'+
'<td>'+$('#valor').val()+'</td>'+
'<td>'+$('#peso').val()+'</td>'+
'<td>'+$('#alto').val()+'</td>'+
'<td>'+$('#ancho').val()+'</td>'+
'<td>'+$('#largo').val()+'</td></tr>');
});
$('#gproducto').click(function() {
var presentaciones;
var i = 0;
//Validar Producto es una funcion que retorna true o false, eso funciona bien
//En validar producto se valida que la tabla tenga filas, el problema comienza en el each.
if(!validarProducto()) {
$('#lista-presentaciones tr').each(function() {
presentaciones[i]=$(this).find('td').eq(1).html();
alert(presentaciones[i]);
});
}
});
tambien cambie el each por un for sacando el numero de filas de la tabla y no me retorna el valor del 'td' que estoy pidiendo. De la siguiente forma:
$('#agregar-presentacion').click(function() {
$('#lista-presentaciones').append('<tr><td><input type="checkbox" name="presentacion" value="'+$('#presentacion').val()+'"></td>'+
'<td>'+$('#presentacion').val()+'</td>'+
'<td>'+$('#valor').val()+'</td>'+
'<td>'+$('#peso').val()+'</td>'+
'<td>'+$('#alto').val()+'</td>'+
'<td>'+$('#ancho').val()+'</td>'+
'<td>'+$('#largo').val()+'</td></tr>');
});
$('#gproducto').click(function() {
var presentaciones;
if(!validarProducto()) {
for(i = 0; i < $('#lista-presentaciones tr').length; i++); {
alert($('#lista-presentaciones').find('tr').eq(i).find('td').eq(2).html());
}
}
});
agradezco cualquier ayuda con esto.
$('#gproducto').on('click', function(){
/* Por cada columna */
$('#lista-presentaciones tr').each(function(){
/* Obtener todas las celdas */
var celdas = $(this).find('td');
/* Mostrar el valor de cada celda */
celdas.each(function(){ alert($(this).html()); });
/* Mostrar el valor de la celda 2 */
alert( $(celdas[1]).html() );
});
});
De todos modos esa forma esa forma de obtener los valores es un poco bruta. Yo te recomendaría almacenar en un array o un objeto y sacarlos de ahí.
Saludos