Javascript 如何使用DOM访问td元素
我正在为网页制作脚本,不能使用getElementById,因为表只有类,所以我正在遍历所有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
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节点中。