javascript - 用数组填充 html 表的问题
问题描述
希望能就我遇到的问题获得一些帮助(这里是Javascript新手!)
我正在尝试用一些数组填充 HTML 表。我希望各种数组中的每个值都在自己的行上。
因此,如果我的数组是病例和死亡,我希望病例[1]、死亡[1] 都在第 1 行。
第 2 行的病例 [2]、死亡 [2] 等。
我现在遇到的问题是虽然数组正在填充,但它们都在我的表中连接/连接到第 1 行。
他们只是添加到第 1 行,而不是进入单独的行(第 2、3、4 行等)
我怎样才能做到这一点?
function Table(){
var dResponse = [
{"state":entered_states.slice(0),"cases":cases.slice(0),"deaths":deaths.slice(0),"drate":drate.slice(0)}
];
var results=document.getElementById('Results');
results.innerHTML += "<tr><th>State</th><th>Cases</th><th>Deaths</th><th>Death rate</th></tr>";
for(var obj in dResponse){
results.innerHTML += "<tr><td>"+dResponse[obj].state+"</td><td>"+dResponse[obj].cases+"</td><td>"+dResponse[obj].deaths+"</td><td>"+dResponse[obj].drate+"</td></tr>";
}
}
window.onload=Table;
解决方案
您需要tbody
在所有行之前添加。当您尝试追加时,它会为每一行<tr>
创建一个新的tbody
function Table(){
var dResponse = [
{"state":"test","cases":"test2","deaths":"test3","drate":"test4"},
{"state":"test","cases":"test2","deaths":"test3","drate":"test4"},
];
var results=document.getElementById('results-body');
for(var obj in dResponse){
results.innerHTML += "<tr><td>"+dResponse[obj].state+"</td><td>"+dResponse[obj].cases+"</td><td>"+dResponse[obj].deaths+"</td><td>"+dResponse[obj].drate+"</td></tr>";
}
}
window.onload=Table;
<table id="Results">
<thead>
<tr><th>State</th><th>Cases</th><th>Deaths</th><th>Death rate</th></tr>
</thead>
<tbody id="results-body"></tbody>
</table>
如果你想改进你的代码:
- 检查 dResponse 是否具有使用属性
hasOwnProperty
- 将结果存储在一个单独的变量中,并在循环结束时注入结果
function createTable() {
let dResponse = [
{'state': 'test', 'cases': 'test2', 'deaths': 'test3', 'drate': 'test4'},
{'state': 'test', 'cases': 'test2', 'deaths': 'test3', 'drate': 'test4'},
];
let results = document.getElementById('results-body');
let html = '';
for (let obj in dResponse) {
if(dResponse.hasOwnProperty(obj)){
html += '<tr><td>' + dResponse[obj].state + '</td><td>' + dResponse[obj].cases + '</td><td>' + dResponse[obj].deaths + '</td><td>' + dResponse[obj].drate + '</td></tr>';
}
}
results.innerHTML = html;
}
window.onload = createTable;
推荐阅读
- python - ValueError:分类指标无法在预训练的 CNN 上处理多标签指标的混合
- python - ValueError: Attempted relative import in non-package - python中的相对导入
- php - 如何将 json 插入 mysql 数据库 wp/php - 数字、字符串和时间戳
- shiny - 连接 Shinymanager 和 Golem
- java - PDFBox 将 Annotation 导出为 FDF 格式
- python - 盒子堆叠算法,每个盒子使用一次
- javascript - Lodash ES6 导入 - 为什么只导入某些函数似乎会导入所有内容?
- php - 如果用户在 WooCommerce 中“登录”,则更改帐户菜单措辞
- javascript - 如何替换 JavaScript 中的特殊字符
- reactjs - NextJS - 生产热重载