3 回答

TA貢獻1890條經驗 獲得超9個贊
如果
data
是對象數組,則從數組方法開始,例如.map()
or.forEach()
(演示使用,.foreach()
因為制作表格實際上并不需要新數組)。這將遍歷
.insertRow()
用于每個對象的數組。現在使用Object.values()
or將每個對象轉換為其值的元素Object.keys()
(演示使用Object.values()
它節省了一個步驟)。現在通過值的陣列與迭代
.forEach()
或.map()
和.insertCell()
隨后.textContent
的值到細胞中。
let data = [{
name: 'John Doe',
date: '1/1/19',
assigned: 'A'
},
{
name: 'Jane Doe',
date: '2/1/819',
assigned: 'B'
},
{
name: 'Darth Vader',
date: '3/11/19',
assigned: 'C'
},
{
name: 'Obi Wan',
date: '4/20/19',
assigned: 'D'
}
];
const frag = document.createDocumentFragment();
const tbl = document.createElement("table");
const tblB = document.createElement("tbody");
tbl.appendChild(tblB);
frag.appendChild(tbl);
data.forEach((obj, idx) => {
let row = tblB.insertRow();
Object.values(obj).forEach(val => {
let cell = row.insertCell();
cell.textContent = val;
});
});
document.body.appendChild(frag);

TA貢獻1836條經驗 獲得超5個贊
我剛剛看到你的評論,你更喜歡 vanilla js。如果有興趣,這里是 jquery 方式。
var data = [
{ Column1: "col1row1", Column2: "col2row1" },
{ Column1: "col1row2", Column2: "col2row2" }
];
$("#tasklist")
.append($('<table>')
.append($('<tbody>')));
var tbody = $("#tasklist > table > tbody");
$.each(data, function (idx, item) {
$(tbody).append($('<tr>')
.append($('<td>')
.text(item.Column1)
)
.append($('<td>')
.text(item.Column2)
)
);
});
添加回答
舉報