Javascript 如何使用DOM访问td元素

Javascript 如何使用DOM访问td元素,javascript,Javascript,我正在为网页制作脚本,不能使用getElementById,因为表只有类,所以我正在遍历所有td元素 function func(){ alert('Working'); var element = document.getElementsByTagName('td'); var Length = element.length; //740 document.write(Length + "<br />"); var counter = 0; if(counter < Le

我正在为网页制作脚本,不能使用getElementById,因为表只有类,所以我正在遍历所有td元素

function func(){
alert('Working');

var element = document.getElementsByTagName('td');
var Length = element.length; //740
document.write(Length + "<br />");
var counter = 0;

if(counter < Length){
document.write('Loop Initialized...' + "<br />");
var elementValue = element[counter].firstChild;
var elementType = element[counter].firstChild.nodeType;

if(elementType == 1){
    document.write('Invalid value(1)' + "<br />");
}else if(elementType == 2){
    document.write('Invalid value(2)' + "<br />");
}else if(elementType == 3){
    if(elementValue == 'undefined'){
        document.write('Undefined...' + "<br />");
    }else{
    document.write('***   ' + elementValue + '   ***');
    }
}else{
    alert("An error has occurred.");
}
counter++;
}
}
</script>
函数func(){
警报(“工作”);
var元素=document.getElementsByTagName('td');
var Length=element.Length;//740
文件。写(长度+“
”); var计数器=0; if(计数器<长度){ write('Loop Initialized…'+“
”); var elementValue=element[counter].firstChild; var elementType=element[counter].firstChild.nodeType; if(elementType==1){ 文件。写入('无效值(1)'+“
”); }else if(elementType==2){ 文件。写入('无效值(2)'+“
”); }else if(elementType==3){ if(elementValue==“未定义”){ 编写('Undefined…'+“
”); }否则{ document.write('***'+elementValue+'***'); } }否则{ 警报(“发生错误”); } 计数器++; } }
输出:

740
循环已初始化


它甚至似乎没有触及第二个循环。

文档。getElementsByTagName
返回一个“live”
节点列表,即对DOM的更改反映在其中。因此,如果您从文档
document
中删除元素,它将从通过
document.getElementsByTagName
获取的live
节点列表中删除
document.write
在文档被“关闭”(解析完成)后会关闭整个DOM,因此在编写调试消息时列表将变为空

这就是控制台日志的作用


哦,正如@RevanProdigalKnight所说,实际上你也没有循环。

我甚至没有看到任何循环。永远,永远,永远,永远不要使用document.write。使用.innerHTML并将输出放在DOM节点中。