Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 未在其中呈现的表格单元格';s表行_Jquery_Ajax_Json - Fatal编程技术网

Jquery 未在其中呈现的表格单元格';s表行

Jquery 未在其中呈现的表格单元格';s表行,jquery,ajax,json,Jquery,Ajax,Json,JSON结构: {“行”:[ ]} JQuery代码: $.each(response.rows,函数(索引,行){ $.each(rows.row,函数(index,row){ var元素=$(“tbody”).append(“”); var element1=element.append(“”); $.each(this.cells,函数(索引){ 元素1.追加(“+this.data+”); }); $(“tbody”)。追加(“”); }); })) 问题: 生成的每一行都有一个索

JSON结构:

{“行”:[

]}

JQuery代码:

$.each(response.rows,函数(索引,行){

$.each(rows.row,函数(index,row){
var元素=$(“tbody”).append(“”);
var element1=element.append(“”);
$.each(this.cells,函数(索引){
元素1.追加(“+this.data+”);
});
$(“tbody”)。追加(“”);
});  
}))

问题:

  • 生成的每一行都有一个索引值为0的ID。第1行的ID应为0,第2行的ID应为1,第3行的ID应等于2

  • td元素作为tbody的子元素绘制。他们应该是tr的孩子

  • 关闭tr应在每行的最后一个单元格之后绘制,当前tr在绘制任何单元格之前自动关闭


  • 索引问题不是100%确定,但在渲染方面,这里有一个细分:

    var element=$("tbody").append("<tr id='" + index + "'>");
    
    现在将td附加到
    tbody
    ,然后元素1也将等于
    tbody
    ,因此,为什么each中的下一个append不能正常工作。最后,您应该只追加整个元素,因此作为两个单独的操作追加
    永远不会起作用

    请尝试以下方法:

    var row = document.createElement('tr');
    row.setAttribute('id', index);
    $("tbody").append(row);  
    $(row).append("<td><input type='checkbox'></input></td>");
    $.each(this.cells, function(index){ 
        $(row).append("<td>" + this.data + "</td>"); 
    });
    $("tbody").append(row);
    
    var row=document.createElement('tr');
    row.setAttribute('id',索引);
    $(“tbody”)。追加(第行);
    $(行)。追加(“”);
    $.each(this.cells,函数(索引){
    $(行)。追加(“+this.data+”);
    });
    $(“tbody”)。追加(第行);
    

    只是对索引问题的思考。您正在使用名称
    索引
    两次。尝试为其中一个变量使用不同的变量名。

    试试这个。这让我有点困惑,因为我习惯了在循环DOM元素的上下文中使用.each()的语法。因为它是$.each(),所以第一个循环的索引引用了您试图为每一行获取的数字

    我把TR追加移到了你的循环之外

    (最后一个孩子并不是添加TDs的最快方法,您可以使用createElement,如Endophage posted,然后参考该方法)

    $.each(response.rows,函数(索引,行){
    $(“tbody”)。附加(“”);
    $.each(this.row,函数(索引){
    var element1=$(“tbody tr:last child”).append(“”);
    $.each(this.cells,函数(索引){
    元素1.追加(“+this.data+”);
    });
    });
    });
    
    我还在表行的ID属性中添加了“index”一词,因为ID应该以字母开头。

    #2和#3有效!!多谢各位#1仍然是个问题。我更改了变量名,但每行仍然获得一个值为0的id属性
    var element=$("tbody").append("<tr id='" + index + "'>");
    
    var element1=element.append("<td><input type='checkbox'></input></td>");
    
    var row = document.createElement('tr');
    row.setAttribute('id', index);
    $("tbody").append(row);  
    $(row).append("<td><input type='checkbox'></input></td>");
    $.each(this.cells, function(index){ 
        $(row).append("<td>" + this.data + "</td>"); 
    });
    $("tbody").append(row);
    
    $.each(response.rows, function(index, rows) {
    
        $("tbody").append('<tr id="index' + index + '"></tr>');
    
        $.each(this.row, function(index) {
            var element1 = $("tbody tr:last-child").append("<td><input type='checkbox'></input></td>");
            $.each(this.cells, function(index) {
                element1.append("<td>" + this.data + "</td>");
            });
        });
    });