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