Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取要附加到HTML表中新列的嵌套数组项_Javascript_Html_Arrays_Dom - Fatal编程技术网

Javascript 获取要附加到HTML表中新列的嵌套数组项

Javascript 获取要附加到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

我试图将2D数组中的项追加到表中,但所有内容都显示在左侧的一列中。如何分离tableDataArr[1]以开始加载到下一列

Javascript

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);
      });
    }
}