我试图通过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>
您忘记引用i-th row:
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集合是从零开始的。因此,如果您想引用第四个单元格,请使用.cells[3]
。从你之前的回答来看,你太差劲了。见http://jsfiddle.net/ndfh2/。
可以看到,第一行也得到了后缀。要在第一行中不向这些单元格添加后缀,请在1处初始化计数器:for( var i=1; .. ; .. )
您当前的代码可能无法工作,因为您的行没有十二(12)行。请记住,tds[ number ]
处的数字等于一行中单元格的索引,从0开始。