Javascript JS-insertBefore()带有getElementsByTagName的无限循环

Javascript JS-insertBefore()带有getElementsByTagName的无限循环,javascript,html,Javascript,Html,我正在尝试在没有tbody的情况下克隆thead。并将两个表包装在div中。这是我的示例代码 document.addEventListener('DOMContentLoaded',function(){ var table=document.getElementsByTagName('table'); 对于(i=0;i

我正在尝试在没有
tbody
的情况下克隆
thead
。并将两个表包装在
div
中。这是我的示例代码

document.addEventListener('DOMContentLoaded',function(){
var table=document.getElementsByTagName('table');
对于(i=0;i

彩色文本
色彩预览
颜色名称
十六进制值
RGB值
镰刀菌
#f1a4b1
102, 74, 51
印刷品
#ea12fb
41, 45, 21
粉红色
#aa12fa
55, 84, 100
黄金
#abcdef
120, 210, 43
彩色文本
色彩预览
颜色名称
十六进制值
RGB值
镰刀菌
#f1a4b1
102, 74, 51
印刷品
#ea12fb
41, 45, 21
粉红色
#aa12fa
55, 84, 100
黄金
#abcdef
120, 210, 43

让我们从您的错误开始,您试图在循环内进行函数防御,这是一个错误的声明,您可以调用函数并在函数内进行for循环。或者你可以让它成为匿名函数。第二个是无限循环。 编辑 看看这个片段

var table=document.getElementsByTagName(“表”);
table=[].slice.call(table);
document.addEventListener(“DOMContentLoaded”,函数(){
对于(i=0;i

彩色文本
色彩预览
颜色名称
十六进制值
RGB值
镰刀菌
#f1a4b1
102, 74, 51
印刷品
#ea12fb
41, 45, 21
粉红色
#aa12fa
55, 84, 100
黄金
#abcdef
120, 210, 43
彩色文本
色彩预览
颜色名称
十六进制值
RGB值
镰刀菌
#f1a4b1
102, 74, 51
印刷品
#ea12fb
41, 45, 21
粉红色
#aa12fa
55, 84, 100
黄金
#abcdef
120, 210, 43

< /代码>您正在克隆Tead,然后?您可以考虑将函数<代码> init < /Cult>定义从循环中移出,而将表和它需要的其他值作为函数参数传递。目前,您正在每次循环迭代中重新定义该函数,这是不必要的。@Boudyhesham添加一个类
fixed
,并删除tbody。仅保留
thead
。并将其放在原始html表之前。@AbrarHossain我计划在此循环中添加更多函数。这就是为什么我要将函数
init
definition放在循环中。@abjim我理解,但最好将声明移到外部。您可以像这样传递对表、包装器和其他数据的引用:
init(table,wrapper,…otherArgs)
。我想要像这样的dom树@abjim cool这个结构看起来像你的img希望这有帮助。我想了很多,但没有找到任何最终的解决办法。但是你的回答使它成为可能。我正在尝试用vanilla js创建一个可滚动页面。不使用任何类型的插件/库。最终的版本是这样的@abjim好吧,问题是live htmlCollection跟踪dom,所以每当您选择“按标记名使用”或子对象尝试将它们转换为数组时,它们就充当类似数组的对象。请注意,如果这是正确的答案,请接受它。@abjim thx,我有一个建议,如果你想达到你发布的这个链接,那么css的位置呢?