2 回答
TA贡献1780条经验 获得超5个赞
我试过解决你的问题。下面是 createRowHTML 函数的变化。
function createRowHTML() {
var tableContent = "";
for (var result = 0; result < data.result.length; result++) {
// calculate rowspan for first cell
var rowspan = 0;
var detailLength = data.result[result].RMP_MASTER_WILAYAH_detail.length;
rowspan += detailLength;
for (var i = 0; i < detailLength; i++) {
rowspan += data.result[result].RMP_MASTER_WILAYAH_detail[i].RMP_MASTER_WILAYAH_relasi.length;
}
// create rows
tableContent += "<tr><td rowspan=" + parseInt(1 + rowspan) + ">" + data.result[result].RMP_MASTER_WILAYAH_KODE + "</td></tr>";
var relasiLength = 0;
for (var i = 0; i < detailLength; i++) {
relasiLength = data.result[result].RMP_MASTER_WILAYAH_detail[i].RMP_MASTER_WILAYAH_relasi.length;
tableContent += "<tr><td rowspan=" + parseInt(1 + relasiLength) + ">"
+ data.result[result].RMP_MASTER_WILAYAH_detail[i].RMP_MASTER_WILAYAH + "</td></tr>";
for (var j = 0; j < relasiLength; j++) {
tableContent += "<tr><td>" + data.result[result].RMP_MASTER_WILAYAH_detail[i].RMP_MASTER_WILAYAH_relasi[j].RMP_MASTER_PERSONAL_NAMA + "</td></tr>";
}
}
}
$("tbody#zone_data").append(tableContent);
}
$(function () {
createRowHTML();
});
工作示例: http: //jsfiddle.net/w8r2a9vs/
TA贡献1783条经验 获得超4个赞
您可以使用二叉树的逻辑。对于您来说,问题可以跟踪所有没有子节点的节点,在顶部父节点上,将 +1 添加到 rowspan 到任何父节点
在没有孩子的示例节点中
{ "RMP_MASTER_PERSONAL_ID": "20200325091038411761", "RMP_MASTER_PERSONAL_NAMA": "M. TANG", }
第一个父母收到 2 行跨度“点”,下一个父母有他的孩子的行跨度总和
算法:
1 遍历所有节点,
2 如果找到没有子节点的节点遍历他的所有父节点并向“rowspan”添加+1
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报