Javascript 获取要附加到HTML表中新列的嵌套数组项
我试图将2D数组中的项追加到表中,但所有内容都显示在左侧的一列中。如何分离tableDataArr[1]以开始加载到下一列 JavascriptJavascript 获取要附加到HTML表中新列的嵌套数组项,javascript,html,arrays,dom,Javascript,Html,Arrays,Dom,我试图将2D数组中的项追加到表中,但所有内容都显示在左侧的一列中。如何分离tableDataArr[1]以开始加载到下一列 Javascript let names = []; //populated dynamically let language = []; //populated dynamically let tableDataArr = [names, language]; function renderData() { for (let i = 0; i < table
let names = []; //populated dynamically
let language = []; //populated dynamically
let tableDataArr = [names, language];
function renderData() {
for (let i = 0; i < tableDataArr.length; i++) {
tableDataArr[i].forEach(j => {
let newRow = document.createElement("tr");
newRow.className = "row";
newRow.innerHTML = `<td class='cell'>${j}</td>`;
leftTable.appendChild(newRow);
});
}
}
let name=[]//动态填充
让语言=[]//动态填充
设tableDataArr=[名称,语言];
函数renderData(){
for(设i=0;i{
设newRow=document.createElement(“tr”);
newRow.className=“行”;
newRow.innerHTML=`${j}`;
leftTable.appendChild(newRow);
});
}
}
HTML
名称
语言
最新标签
应该是这样的
function renderData() {
for (let i = 0; i < tableDataArr.length; i++) {
let newRow = document.createElement("tr");
tableDataArr[i].forEach(j=> {
newRow.className = "row";
newRow.innerHTML = `<td class='cell'>${j}</td>`;
leftTable.appendChild(newRow);
});
}
}
函数renderData(){
for(设i=0;i{
newRow.className=“行”;
newRow.innerHTML=`${j}`;
leftTable.appendChild(newRow);
});
}
}
因为您可能不需要在第二个循环中迭代表行。如果您喜欢这样做,则将只添加一个表数据的每一行。对于每次迭代,将名称和语言添加到同一行,然后将该行插入表中 我在名称和语言数组中添加了一些元素来演示
let names=[“name1”、“name2”、“name3”]//动态填充
让language=[“language1”、“language2”、“language3]//动态填充
设tableDataArr=[名称,语言];
const leftTable=document.querySelector(“左表”);
函数renderData(){
tableDataArr[0]。forEach((j,i)=>{
设newRow=document.createElement(“tr”);
newRow.className=“行”;
newRow.innerHTML=`${j}${tableDataArr[1][i]}`;
leftTable.appendChild(newRow);
});
}
renderData()代码>
名称
语言
最新标签
Hmm这有助于将语言数组放入下一列,但它只适用于名称和语言的最后一项。如何以这种方式列出阵列中的所有项目?谢谢你的帮助非常感谢!这正是我想要达到的。另外,我可以问一下为什么你把getElementByID改为querySelector吗?我不知道你在哪里选择表,我只是更习惯于使用查询选择器。嗨,克里斯,你介意看看我最近的帖子(关于这个表的另一个问题),因为你帮我解决了这个问题吗?干杯看起来你已经有了miozzz的一个不错的答案,我会建议同样的解决方案。您也可以使用async/await,但由于有一个fetch循环,因此使用Promise.all具有更好的性能。他确实犯了一个小错误,只是改变了承诺。所有(ps)都改为承诺。所有(psArr)都对我有效。谢谢克里斯!答应我,就这么定了。
function renderData() {
for (let i = 0; i < tableDataArr.length; i++) {
let newRow = document.createElement("tr");
tableDataArr[i].forEach(j=> {
newRow.className = "row";
newRow.innerHTML = `<td class='cell'>${j}</td>`;
leftTable.appendChild(newRow);
});
}
}