使用Javascript在TD中向InnerHTML添加文本

时间:2011-11-01 15:20:07

标签: javascript html

我正在尝试通过Javascript向特定列中的每个单元格添加文本。像处理每个第8个TD一样,用于添加文本。

告诉我这里做错了什么/为什么它没有出现在我的表中:

<script type="text/javascript">
window.onload = function inventorytable() {
var tableRows = document.getElementById

("inventorytable").getElementsByTagName("tbody")[0].getElementsByTagName("tr");

for(var i = 0, l = tableRows.length; i < l; i++) {
    tds = tableRows.getElementsByTagName("td");
    var processor = tds[8].innerHTML += " Ghz"
    var ram = tds[9].innerHTML += " GB"
    var rspeed = tds[11].innerHTML += " Mhz"
}}
</script>

1 个答案:

答案 0 :(得分:4)

您忘记参考 i 第一行:

tds = tableRows[i].getElementsByTagName("td");

我建议使用:

window.onload = function inventorytable() {
    var tableRows = document.getElementById("inventorytable").rows;
             //or .tBodies[0].rows

    for(var i=0, l=tableRows.length; i < l; i++) {
        var tds = tableRows[i].cells;
        /*processor*/ tds[8].innerHTML += " Ghz"
        /*ram      */ tds[9].innerHTML += " GB"
        /*  rspeed */ tds[11].innerHTML += " Mhz"
    }
}

不要定义未使用的变量。如果您想澄清其用途,请使用注释。

此外,我已将.getElementsByTagName替换为.rows.cells

<强>更新
JavaScript集从零开始。因此,如果您想参考第4个单元格,请使用.cells[3]。 在你之前的回答中,你已经表现出了一个小提琴。 请参阅http://jsfiddle.net/ndfh2/
正如你所看到的,第一行也是后缀。要在第一行中不向这些单元格添加后缀,请在一个位置启动计数器:for( var i=1; .. ; .. )

您当前的代码可能无效,因为您的行没有十二(12)行。请记住,tds[ number ]处的数字等于行中单元格的索引,从零开始。