2011-11-01 100 views
0

我想通过Javascript在特定列中的每个单元格中添加文本。就像每8个TD一样,将会处理添加文本。在使用Javascript的TD中向InnerHTML添加文本

告诉我,我做了什么错在这里/为什么它不在我的表显示:

<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> 
+0

你可以坚持这个在jsfiddle.net? –

+0

http://jsfiddle.net/gnaRA/ –

回答

4

你忘了来指代个行:

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" 
    } 
} 

不要定义未使用的变量。如果你想澄清他们的使用,请使用评论。

另外,我用.rows.cells代替了.getElementsByTagName

更新
JavaScript集是从零开始的。所以,如果你想参考第四个单元格,请使用.cells[3]。 在你之前的回答中,你展示了一个小提琴。 http://jsfiddle.net/ndfh2/
正如你所看到的,第一行也得到了后缀。若要在第一行中不添加后缀到这些单元格,请启动一个计数器:for(var i=1; .. ; ..)

您的当前代码可能不起作用,因为您的行没有十二(12)行。请记住,tds[ number ]上的数字等于一行中某个单元的索引,从零开始。

+0

Hrm,仍然没有得到我的细胞文本的任何更改。 –

+0

谢谢!这有很大帮助。 - 其实我该如何防止它与混淆?它现在也出现在之中。 –

+0

没关系,把我改成1,它修好了!谢谢! –