繁体   English   中英

使用JavaScript将td动态添加到html表中的特定位置

[英]Adding td dynamically to html table at specific position using javascript

我有一个HTML表,其中固定了一些td,其余的都是动态的。 因此,到目前为止(当所有字段均为静态时),该表如下所示

label1  tb1 | label2 tb2 | label3 tb3 | label4 tb4

标签名称和相应的文本框值都是动态的。我已经从表中获取了动态值,并将它们存储在Javascript数组中。 现在,我需要通过将这些存储的值附加到上面显示的静态表中来显示它们。

但这是有条件的。 动态字段需要附加在特定位置。 它们需要在tb3之后添加。

由于一行最多可以包含4个元素,因此任何其他字段都需要推送到下一行。 例如:如果我从数据库中获得3个动态td,则新表需要如下所示

label1 tb1         |label2 tb2         |label 3 tb3 |dynalabel1 dynatb1
dynalabel2 dynatb2 |dynalabel3 dynatb3 |label4 tb4  

标签4及其值是静态组件,因此需要将其推到最后。

我进行了很多搜索,但是在特定位置找不到HTML列创建。

我试图使用JS在表中插入动态字段,但它们不会在所需位置生成。

我在这里写的代码

var table = document.getElementById("myTable");

 for(var i = 0; i < val ; i++){  
 // val is the number of td's needed

 var td1 = document.getElementById('td1');  // get id of tb3
 var text = document.createTextNode("some text"); 
 td1.appendChild(text);
 table.appendChild(td1);
 var newField = document.createElement('input');
 newField.setAttribute('type', 'text');
 var newTd = document.createElement('td');
 newTd.appendChild(newField);
 var newTr = document.createElement('tr');
 newTr.appendChild(newTd);
 table.appendChild(newTr);
 }

上面的代码生成文本框和标签“ Some text”,但不在所需位置。 任何人都可以建议如何解决这个问题。

[编辑]

$('<td>new cell</td>').insertAfter('table tr td:nth-child(3)')

[上一个答案]您总是可以用肮脏的方式来做...

$('<tr><td>one</td><td>two</td><td>three</td></tr>').insertAfter('table tr:nth-child(3)')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM