Javascript 以编程方式将一些td附加到tr-jqueryajaxjson
我一直在寻找使用jQuery将td附加到tr到表中的某种方法,而不知道我的json响应,此时我已经做到了:Javascript 以编程方式将一些td附加到tr-jqueryajaxjson,javascript,jquery,html,json,ajax,Javascript,Jquery,Html,Json,Ajax,我一直在寻找使用jQuery将td附加到tr到表中的某种方法,而不知道我的json响应,此时我已经做到了: function getClientes(){ $.ajax({ url:URL_BASE+"Cliente", type:"GET", beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa("hola" + ":" + "hol
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');
})
}
});
}
函数getClientes(){
$.ajax({
url:url_BASE+“客户”,
键入:“获取”,
发送前:函数(xhr){
xhr.setRequestHeader(“授权”、“基本”+btoa(“hola”+:“+”hola”);
},
成功:功能(数据){
$.each(数据、函数(索引、值){
$('')。追加(
$.each(值,函数)(值,celda)
{
$('').text(塞尔达);
})
).appendTo(“#table”);
})
}
});
}
问题是我得到的.html输出如下:
<table id="table" class="table table-condensed">
<tr></tr>
<tr></tr>
</table>
因此,这不是将td附加到tr,我不想手动附加它们我知道这样做很容易,但这对我来说更好,请帮助: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){
$('tr').append(
$.each(value,function(value,celda)
{
$('td').text(celda);
})
).appendTo('#table');
})
}
});
}
我认为它会起作用。我想您需要像下面这样追加数据,首先创建一个表行,然后使用选择器
$('tr:last')
var数据=[[“你好”,“A”],[“hiii”,“B”],[“嘿”,“C”]]
$.each(数据、函数(索引、值){
$(“#表”)。追加(“”)
$.each(值,函数)(值,celda)
{
$('tr:last')。追加(''+celda+'');
})
})
请参见此笔:
我使用数组“map”操作符而不是jQuery的$。each
在函数中,当您执行$('').text(celda)
在每个$.each()交互中,VM只执行此指令,而不存储/返回要添加到最终生成的HTML元素集中的结果
因此,您的函数可能如下所示:
函数getClientes(){
$.ajax({
url:url_BASE+“客户”,
键入:“获取”,
发送前:函数(xhr){
setRequestHeader(“授权”、“基本”+btoa(“hola”+:“+”hola”);
},
成功:功能(数据){
data.map(值=>{
var elements=value.map(子值=>{
返回$('').text(子值);
});
返回$('')。追加(元素);
}).appendTo(“#table”);
}
})
}最后,我创建了一行,并在每个循环中手动附加它,这不是最好的答案,但它对我很有效,谢谢你的所有答案: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 = $("<tr/>");
$.each(value,function(value,celda)
{
row.append($('<td>').text(celda));
});
$('#table').append(row);
})
}
});
}
函数getClientes(){
$.ajax({
url:url_BASE+“客户”,
键入:“获取”,
发送前:函数(xhr){
xhr.setRequestHeader(“授权”、“基本”+btoa(“hola”+:“+”hola”);
},
成功:功能(数据){
$.each(数据、函数(索引、值){
变量行=$(“”);
$.each(值,函数)(值,celda)
{
行追加($('').text(celda));
});
$(“#表”)。追加(行);
})
}
});
}
仅更改tr不适用的内容。
返回$('').text(celda)代码>?在每个内部追加一个字符是没有意义的。每个都不返回任何内容。如果您映射并返回一个元素集合,这将是有意义的。