使用javascript区分td

时间:2014-08-08 13:53:32

标签: javascript html-table tablerow tablecell

我在代码中的每一行创建一个表,两行和两个单元格。为此,我有以下代码:

var t = document.createElement('table');
document.body.appendChild(t);
for (var x = 0; x <= 1; x++) {
    var tr = document.createElement('tr');
    t.appendChild(tr);
    for (var y = 0; y <= 1; y++) {
        var td = document.createElement('td');
        tr.appendChild(td);
    }
}

现在,我需要在第一个单元格中创建一个文本节点,并在第二个单元格中创建一个a元素。我该怎么做?

4 个答案:

答案 0 :(得分:3)

实际上,执行“两步”循环的代码实际上要多于完全写出来的代码:

var t = document.createElement('table'),
    trs = [document.createElement('tr'),document.createElement('tr')],
    tds = [
        [document.createElement('td'),document.createElement('td')],
        [document.createElement('td'),document.createElement('td')]
    ];
trs[0].appendChild(tds[0][0]);    trs[0].appendChild(tds[0][1]);
trs[1].appendChild(tds[1][0]);    trs[1].appendChild(tds[1][1]);
t.appendChild(trs[0]);            t.appendChild(trs[1]);
// now append more stuff here to the tds
document.body.appendChild(t); // do this last - it's better

答案 1 :(得分:1)

var t = document.createElement('table');
document.body.appendChild(t);
for (var x = 0; x <= 1; x++) {
    var tr = document.createElement('tr');
    t.appendChild(tr);
    for (var y = 0; y <= 1; y++) {

        var td = document.createElement('td');
        tr.appendChild(td);

        if(y == 0){
            alert("here");
            var a = document.createElement('A');
            td.appendChild(a);
            alert("here");
        }
        else{
            var div = document.createElement('div');
            td.appendChild(div);
            //Create text node
        }
    }
}

在循环内部检查y == 0是否为td,如果是,那么您就在y == 1,因此您创建了一个链接。
如果td您在第二个div,则创建textnode

将{{1}}替换为您想要的任何内容。

答案 2 :(得分:0)

在你的第二个循环中只检查if(y == 0)然后在td内创建文本,如果(y == 1)则在td内创建一个。

答案 3 :(得分:0)

另一种方法是在文本中定义表格。

例如:

var t = document.createElement('table');
t.innerHTML = "<tr><td>text</td><td><a href='#'>link</a></td></tr><tr><td>text</td><td><a href='#'>link</a></td></tr>";
相关问题