如何使用DOM访问td元素

时间:2014-07-15 18:34:56

标签: 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 < 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>

输出:

740
循环初始化...

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

1 个答案:

答案 0 :(得分:0)

document.getElementsByTagName会返回“实时”NodeList,即对DOM的更改会反映在其中。因此,如果您从文档document中删除元素,则会从通过NodeList获得的实时document.getElementsByTagName中删除该元素。在文档被“关闭”(解析完成)后,document.write会破坏整个DOM,因此只要您编写调试消息,列表就会变空。

这是console.log的用途!

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