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));