0

我只是在学习这些东西,所以如果我的代码或问题非常基本,请原谅。

我的“工作代码”(没有错误等)只是让你知道我到目前为止:

var t = document.createElement("table"),
    tr = document.createElement("tr"),
    tr2 = document.createElement("tr"),
    td = document.createElement("td"),
    td2 = document.createElement("td"),
    a = document.createElement("a"),
    strong = document.createElement("strong");

t.style.width = "80%";
t.style.border = "0";
t.cellspacing = "2";
t.cellpadding = "2";

.

for (var i = 0; i < nodes.length; i++) {
    the_table_color = nodes[i].getAttribute("table_color");
    the_type = nodes[i].getAttribute("type");
    alt_link = nodes[i].getAttribute("alt_link");
    link_for_deletion = nodes[i].getAttribute("link_for_deletion");
    comment = nodes[i].getAttribute("comment");

    tr.bgColor = the_table_color;
    t.appendChild(tr);

    td.width = "16%";
    td.vAlign = "top";
    tr.appendChild(td);

    strong.appendChild(document.createTextNode(the_type));
    td.appendChild(strong);

    td.width = "16%";
    td.vAlign = "top";
    tr.appendChild(td);

    td2.width = "70%";
    td2.vAlign = "top";
    tr.appendChild(td2);

    a.href = alt_link;
    a.appendChild(document.createTextNode(alt_link));
    a.target = "_blank";
    td2.appendChild(a);
}

正如你从上面看到的,我有一点:

td = document.createElement("td"),
    td2 = document.createElement("td"),

原因是,如果我没有再次声明“td”,第一个会被覆盖,第二个不会显示......
A)这是正确的方法吗?(不确定这是否是正确的方法,我提出了声明另一个变量以使其工作的解决方案,但这似乎是额外的代码)

然后这行代码:

strong.appendChild(document.createTextNode(the_type));

只需将循环中的所有内容添加到那里:(
例如,for() 循环的第一次迭代有abc,第二次def它第一次显示 abcdef 而不是 abc,第二次显示 def。B
) 为什么会这样以及如何我要修复它吗?

谢谢!

4

1 回答 1

2

您的 for 循环每次迭代都针对同一个实例执行。除非您执行以下操作,否则您不会获得多行数据:

document.createElement("TR");
document.createElement("TD");

在循环体内。否则,你是完全正确的,你只是将相同的文本附加到相同的行和表格单元格,每次迭代循环。

听起来您需要将方法更改为:

var table = document.createElement("TABLE");
for(var i = 0; i < nodes.length; i++){
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    tr.appendChild(td);
    table.appendChild(tr);

    // do something to to td    
}

如果我误解了您的问题,请告诉我,但如果您想知道为什么您的表格只构建一行或反复修改同一个单元格,那绝对是为什么......如果您的问题还有更多问题,请告诉我,我会更新帖子。

快乐编码。

于 2011-07-30T15:46:59.113 回答