Añada programáticamente algunos td a tr – jQuery AJAX JSON

He estado buscando alguna forma de anexar td a tr to table usando jQuery sin saber nada sobre mi respuesta json, en este punto en el tiempo he llegado a esto:

function getClientes(){ $.ajax({ url:URL_BASE+"Cliente", type:"GET", beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa("hola" + ":" + "hola")); }, success: function (data){ $.each(data,function(index,value){ $('').append( $.each(value,function(value,celda) { $('').text(celda); }) ).appendTo('#table'); }) } }); } 

El problema es que obtengo mi resultado .html de esta manera:

 

Así que esto no agrega la td al tr, no quiero agregarlos manualmente Sé que es muy fácil hacerlo, pero esto es mucho mejor para mí, por favor ayuda: D

Reemplace su código con este ::

 function getClientes(){ $.ajax({ url:URL_BASE+"Cliente", type:"GET", beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa("hola" + ":" + "hola")); }, success: function (data){ $.each(data,function(index,value){ $('tr').append( $.each(value,function(value,celda) { $('td').text(celda); }) ).appendTo('#table'); }) } }); } 

Creo que funcionará.

Supongo que debe agregar sus datos como se muestra a continuación creando primero una fila de tabla y luego añadiendo a la última fila de tabla usando el selector $('tr:last')

 var data = [["hello", "A"], ["hiii", "B"], ["hey", "C"]] $.each(data,function(index,value){ $("#table").append('') $.each(value,function(value,celda) { $('tr:last').append('' + celda + ''); }) }) 
  

Vea este Pen: http://codepen.io/rarmatei/pen/XpYWNL

Usé el operador “mapa” de la matriz en lugar de $ .each de jQuery.

En su función, cuando hace $('

').text(celda);

dentro de cada interacción $ .each (), la VM simplemente ejecuta esta instrucción sin almacenar / devolver el resultado para ser agregado al conjunto final de elementos HTML generados.

Por lo tanto, su función puede ser similar a la siguiente:

 function getClientes() { $.ajax({ url: URL_BASE + "Cliente", type: "GET", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + btoa("hola" + ":" + "hola")); }, success: function(data) { data.map(value => { var elements = value.map(subValue => { return $('').text(subValue); }); return $('').append(elements); }).appendTo('#table'); } }) } 

finalmente creé una fila y la agregué manualmente en cada ciclo, no es la mejor respuesta, pero funciona para mí, gracias por todas las respuestas: D

 function getClientes(){ $.ajax({ url:URL_BASE+"Cliente", type:"GET", beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa("hola" + ":" + "hola")); }, success: function (data){ $.each(data,function(index,value){ var row = $(""); $.each(value,function(value,celda) { row.append($('').text(celda)); }); $('#table').append(row); }) } }); }