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
除了给你一个错误外什么都不做。。。