将多个tds添加到额外数组中以添加到tr元素节点

时间:2016-07-08 13:34:52

标签: javascript

我有一个var列表,​​里面有一些值。 这些值都是通过在表输入字段中插入的内容创建的文本节点,如下所示:

<td><input id="a" type="text" cam-variable-name="a" /></td>
<td><input id="b" type="text" cam-variable-name="b" /</td>
<td><input id="c" type="text" cam-variable-name="c" /></td>

var a= document.createTextNode(document.getElementById("a").value);
var b= document.createTextNode(document.getElementById("b").value);
var c= document.createTextNode(document.getElementById("c").value);
var list[a,b,c]

现在我已经迭代了td对象

for(i=0;i<list.length;i++){var node_td = document.createElement('td');
node_td.id=i;
node_td.appendChild(list[i]);

我有问题,每个td元素应该以某种方式推入一个新数组,所以我可以迭代该数组,如listNode []。 我不能通过id获取元素,因为它还没有在文档中,但我必须将所有tds放在一个tr节点中,这样它就不会给我一个字段&#34; c&#34;在我的桌子里..谁知道我怎么能得到那个??

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方式:

var ids = ['a', 'b', 'c'],
    trElement = ids
        .map(function( id ) {
            return document.querySelector('#' + id);
        })
        .reduce(function( tr, node ) {
            var td = document.createElement('td');
            td.id = node.value;
            tr.appendChild(td);
            return tr;
        }, document.createElement('tr'));

他们将trElement附加到你的桌子上。