Javascript 在表中打印json数据
我已经编写了下面的函数,但是我很确定有一个错误。这就是我试图执行这段代码时的错误Javascript 在表中打印json数据,javascript,jquery,json,Javascript,Jquery,Json,我已经编写了下面的函数,但是我很确定有一个错误。这就是我试图执行这段代码时的错误 TypeError: 'undefined' is not a function (evaluating 'callback.apply( obj[ i ], args )') Jquery函数接收数据json列表 $("#result_times") .find("tr") .remove() .end(); $("#result_times") .find("table")
TypeError: 'undefined' is not a function (evaluating 'callback.apply( obj[ i ], args )')
Jquery函数接收数据json列表
$("#result_times")
.find("tr")
.remove()
.end();
$("#result_times")
.find("table")
.each(data, function(){
$(this).append($("<tr>"));
$(this).append($("<td></td>")).text(data.airport_city_source);
$(this).append($("<td></td>")).text(data.airport_city_dest);
$(this).append($("<td></td>")).text((data.departure_date));
$(this).append($("<td></td>")).text((data.arrival_date));
$(this).append($("</tr>"));
});
$(“#结果_次”)
.find(“tr”)
.删除()
.end();
$(“结果乘以”)
.find(“表格”)
.each(数据,函数(){
$(this.append($(“”));
$(this.append($(“”)).text(data.airport\u city\u source);
$(this.append($(“”)).text(data.airport\u city\u dest);
$(this.append($(“”)).text((data.department_date));
$(this.append($(“”)).text((data.arrival_date));
$(this.append($(“”));
});
这是DOM
<div id='result_times'>
<table>
</table>
</div>
您能告诉我哪里错了吗?.append()
在处理元素时,其工作方式与串联不同
试试看
var table=$(“#结果_次”).find(“table”);
$.each(数据,函数(k,val){
表1.1追加(
$(“”+data.airport\u city\u source+“”
+“”+data.airport\u city\u dest+“”
+“”+数据。出发日期+“”
+“”+data.arrival_日期+“”
+"")
);
});
最初的回答是错误的。已将其更新为正确的。当您应该使用
$.each()
函数时,您正在使用.each()
方法。您也没有附加到正确的元素——您试图将
元素附加到表中,它们必须附加到行中,文本必须应用到
元素,而不是
要附加到的元素。基本上,您的编码方式就好像.append()
只是将HTML文本连接起来,而不是将元素插入DOM中
var table = $("#result_times table");
$.each(data, function() {
var row = $("<tr>").appendTo(table);
row.append($("<td>", {text: data.airport_city_source}));
row.append($("<td>", {text: data.airport_city_dest});
row.append($("<td>", {text: data.departure_date}));
row.append($("<td>", {text: data.arrival_date}));
});
var表=$(“#结果#u次表”);
$.each(数据,函数(){
变量行=$(“”)。追加到(表);
追加($(“”,{text:data.airport\u city\u source}));
追加($(“”,{text:data.airport\u city\u dest});
append($(“”,{text:data.department_date}));
追加($(“”,{text:data.arrival_date}));
});
您正在每个表上运行each()
,因此jQuery希望函数作为each的第一个参数,而不是数据
。此外,您在错误的元素上调用text()
使用$在数据上运行each。each
工作示例:
$("#result_times")
.find("tr")
.remove()
.end();
var table = $('#result_times table');
$.each(data, function(){
table.append(
$('<tr></tr>').append(
$('<td></td>').text(this.airport_city_source),
$('<td></td>').text(this.airport_city_dest),
$('<td></td>').text(this.departure_date),
$('<td></td>').text(this.arrival_date)
)
);
});
$(“#结果_次”)
.find(“tr”)
.删除()
.end();
var表=$(“#结果_乘以表”);
$.each(数据,函数(){
表1.1追加(
$('')。追加(
$('').text(此.airport\u city\u来源),
$('').text(此。机场\城市\目的地),
$('').text(此出发日期),
$('').text(此到达日期)
)
);
});
试试这样的方法
var tbl_row = '';
$.each(data, function(){
tbl_row += '<tr>';
tbl_row += '"<td>'+data.airport_city_source+'</td>';
tbl_row += '"<td>'+data.airport_city_dest+'</td>';
tbl_row += '"<td>'+data.departure_date+'</td>';
tbl_row += '"<td>'+data.arrival_date+'</td>';
tbl_row += '</tr>';
});
// append only one time, will have effect performance if table is bigger.
$("#result_times").find("table").append($(tbl_row));
var tbl_row='';
$.each(数据,函数(){
tbl_行+='';
tbl_行+=“”+数据。机场城市源+”;
tbl_行+=“”+数据。机场城市目的地+”;
tbl_行+='''数据。出发日期+'';
tbl_行+='''数据。到达日期+'';
tbl_行+='';
});
//只追加一次,若表较大,则会影响性能。
$(“#结果#u次”)。查找(“表”)。追加($(tbl#u行));
请提供一个伪json数据以重新创建发布。不要将TD追加到表中,而是将其追加到可能重复的
var tbl_row = '';
$.each(data, function(){
tbl_row += '<tr>';
tbl_row += '"<td>'+data.airport_city_source+'</td>';
tbl_row += '"<td>'+data.airport_city_dest+'</td>';
tbl_row += '"<td>'+data.departure_date+'</td>';
tbl_row += '"<td>'+data.arrival_date+'</td>';
tbl_row += '</tr>';
});
// append only one time, will have effect performance if table is bigger.
$("#result_times").find("table").append($(tbl_row));