[英]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.