Javascript 将行添加到空的tbody元素

Javascript 将行添加到空的tbody元素,javascript,jquery,dom,Javascript,Jquery,Dom,我有这样的桌子: <table id="search-table" class="table"> <thead> <tr> <th>Something</th> <th>Something2</th> <th>Something3</th> <th>Something4</th> <th&

我有这样的桌子:

<table id="search-table" class="table">
  <thead>
    <tr>
      <th>Something</th>
      <th>Something2</th>
      <th>Something3</th>
      <th>Something4</th>
      <th>Something5</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>

某物
什么
有些事
有些事
什么
我有一个API调用,它返回我想作为行和列放在空tbody元素中的数据

var body = document.getElementsbyTagName("tbody");
var x = 0;

for (i = 0; i < APIcall.length; i++) {
  var createRow = body.insertRow();
  for (j = 0; j < 7; j++) {
    var x = createRow.insertCell(j);
  }
}
var body=document.getElementsbyTagName(“tbody”);
var x=0;
对于(i=0;i
如果在thead元素上插入row,则会创建行,但在尝试将其添加到tbody时不会创建行。也许我只是误会了什么。有什么建议吗?

var html='';
对于(i=0;i“+APIcall[i]。somthing+”+
“+APIcall[i].somthing+”;
}
$(“#搜索表>tbody”).append(html);
在此处输入代码
您就快到了

首先,正如Rory所提到的,您并不是针对DOM中的
tbody
。 您可以通过将第一行替换为以下内容来解决此问题:

var body = document.querySelector('#search-table tbody')
这样做的目的是:它查找ID为
search table
的元素和子元素
,并返回一个引用

您的代码运行时不会出现错误,但我对结果感到困惑。 在第二行中,您有
var x=0
,但稍后我可以看到
var x=createRow.insertCell(j)也是。(第二个
x
将提供对新
元素的引用)


希望这会有所帮助。

如果标记中有多个tbody,则必须专门针对对象,因为getElementsByTagName返回一个元素数组

例如:

var tbodies = document.getElementsbyTagName("tbody");
var targetTbody = tbodies[0];

或者,如果您想将您的内容添加到多个tbodies中,您可以在tbodies上循环。

您是否使用jQuery?代码中有太多错误,实际上什么都没有发生。尝试重新创建错误并在控制台中查找错误。例如:getElementsbyTagName-无此类函数(输入错误)。getElementsByTagName返回一个数组,因此需要
getElementsByTagName(“tbody”)[0]
。修复这些问题,它就可以正常工作:
getElementsbyTagName
应该是
getElementsbyTagName
。编写代码也是关于精度的。
var x=0
可能只是对变量如何工作的误解,它们是用某种东西初始化的,而不是保持未初始化状态。如果在init之前使用,uninitialized将给出一个错误,而var上的init不会给出该错误,如果在更正init之前使用,只会给出难以找到的逻辑错误。我知道这一点,但可能这是更大上下文的一部分。另外,我会选择
const
let
。我知道你知道:)但是
getElementsbyTagName
除了给你一个错误外什么都不做。。。