Javascript 如何使用动态生成的行更改表(添加rowspan/colspan)?
我有一个从数据库中的数据自动创建的表Javascript 如何使用动态生成的行更改表(添加rowspan/colspan)?,javascript,jquery,html-table,rows,Javascript,Jquery,Html Table,Rows,我有一个从数据库中的数据自动创建的表 var rows = ""; rows += "<tr class='row_primary'>"; rows += "<td>COL 1</td>"; rows += "<td>COL 2</td>"; rows += "<td>COL 3</td>"; rows += "</tr>";
var rows = "";
rows += "<tr class='row_primary'>";
rows += "<td>COL 1</td>";
rows += "<td>COL 2</td>";
rows += "<td>COL 3</td>";
rows += "</tr>";
$.each(data.db_values, function(i, results){ //This is from database with n rows depend on n results
rows += "<tr class='row_secondary'>";
rows += "<td>COL 1</td>";
rows += "<td>results.ID</td>";
rows += "<td>COL 3</td>";
rows += "</tr>";
});
$('#t_barang tbody').append(rows);
预期结果:
COL2
DATA1
COL1 DATA2 COL3
DATA3
DATA4
我假设您从第一次加载windows时就已经知道数据库数据
length
。因此,在将动态数据附加到表之前,您可以执行行span
,因此在js中它将如下所示:
我估计您的数据库中提供了5个数据:
database = [
{id: 1},
{id: 2},
{id: 3},
{id: 4},
{id: 5},
];
然后您的行将第一次声明如下:
var rows = "";
rows += "<tr class='row_primary'>";
rows += "<td rowspan="+(database.length+1)+">COL 1</td>";
rows += "<td>COL 2</td>";
rows += "<td rowspan="+(database.length+1)+">COL 3</td>";
rows += "</tr>";
$.each(database, function(i, results){
rows += "<tr class='row_secondary'>";
// rows += "<td>COL 1</td>";
rows += "<td>"+results.id+"</td>";
// rows += "<td>COL 3</td>";
rows += "</tr>";
});
var行=”;
行+=“”;
行+=“列1”;
行+=“第2列”;
行+=“第3列”;
行+=“”;
这里的行跨度是基于数据库长度+1(对于表头)初始化的。然后您可以像这样循环数据:
var rows = "";
rows += "<tr class='row_primary'>";
rows += "<td rowspan="+(database.length+1)+">COL 1</td>";
rows += "<td>COL 2</td>";
rows += "<td rowspan="+(database.length+1)+">COL 3</td>";
rows += "</tr>";
$.each(database, function(i, results){
rows += "<tr class='row_secondary'>";
// rows += "<td>COL 1</td>";
rows += "<td>"+results.id+"</td>";
// rows += "<td>COL 3</td>";
rows += "</tr>";
});
$。每个(数据库、函数(i、结果){
行+=“”;
//行+=“列1”;
行+=“”+结果。id+“”;
//行+=“第3列”;
行+=“”;
});
由于您已经初始化了行span
,因此不需要将列1
和列2
添加到行
,因此我对其进行了注释
记录在案,我已经测试了这段代码,效果很好,所以让我知道你需要更多的东西