javascript 为什么不能getElementsByTagName

<html>
<head>
<title> New Document </title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
</head>
<style type="text/css">
table{
border:#0066FF 1px solid;
}
table td{
border:#0066FF 1px solid;
background-color:#00ccFF;
}
table td div{
background-color:#66FFcc;
display:none;
}
tabletd a:link,table,td a:visited{
text=decoration:none;
color:#0099DD;
}
</style>
<script type="text/javascript">
function list(aNode)
{
var aNode = aNode;
var tdNode = aNode.parentNode;
var divNode = tdNode.getElementsByTagName("div")[0];
alert(divNode);
var tabNode = tabNode.getElementsByTagName("table")[0];
alert(tabNade);
var divNodes = tabNode.getElementsByTagName("div");
alert(divNodes[0]);
for(var x = 0;x<divNodes.length;x++)
{
if(divNode[x] == divNode)
{
if(divNode.className == "open")
{
divNode.className = "close";
}
else
{
divNode.className = "open";
}
}
else{
divNodes[x].className="close";
}
}

alert(aNode.name);
}
</script>
<body>
<table>
<tr>
<td>
<a href="javascript:void(0)" onclick = "list(this)">好友菜单列表</a>
<div>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
</div>
</td>
</tr>

<tr>
<td>
<a href="javascript:void(0)" onclick = "list(this)">好友菜单列表</a>
<div>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
</div>
</td>
</tr>

<tr>
<td>
<a href="javascript:void(0)" onclick = "list(this)">好友菜单列表</a>
<div>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
</div>
</td>
</tr>

<tr>
<td>
<a href="javascript:void(0)" onclick = "list(this)">好友菜单列表</a>
<div>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
中国万岁万岁<br/>
</div>
</td>
</tr>
</table>
</body>
</html>
获取getElementById或者bytagname的时候总是显示object不是标签名称,起了id名称,也获取不到标签对象。

如果没有笔误的话,通常是不会出现这种情况的,应该仔细检查下自己写的代码,关键字是否有误

定义和用法

getElementsByTagName() 方法可返回带有指定标签名的对象的集合。

语法

document.getElementsByTagName(tagname)

说明

getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。

如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。

提示和注释

注释:传递给 getElementsByTagName() 方法的字符串可以不区分大小写。

<html>
<head>
<script type="text/javascript">
function getElements()
  {
  var x=document.getElementsByTagName("input");
  alert(x.length);
  }
</script>
</head>
<body>

<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<input name="myInput" type="text" size="20" /><br />
<br />
<input type="button" onclick="getElements()"
value="How many input elements?" />

</body>
</html>
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-10
alert(divNode);
这个divNode本身是个对象,你直接alert的话,它肯定是显示[object]啊,难道你指望它显示其他的?
你要具体指定这个对象的某个属性,比如:
alert(divNode.tagName); //显示标签名
alert(divNode.id); //显示ID
alert(divNode.name); //显示name
如果divNode是集合,则要这样:
alert(divNode[0].tagName); //显示标签名
alert(divNode[0].id); //显示ID
alert(divNode[0].name); //显示name

再强调一下:getElementsByTagName返回的是对象,不是字符串!getElementById和getElementsByName也一样,不过getElementById返回的是单一对象,而另两个则是集合。追问

你那是标签,我要的是标签对象,正常的他应该是显示div或者tr或者td吧!!而且重点是如果加上你说的tagNAme的话显示的是undefined

追答

var divNode = tdNode.getElementsByTagName("div")[0];
alert(divNode); //显示结果是[object]
alert(divNode.tagName); //显示结果是div

注意大小写
tagNAme 错
tagName 对

追问

都是小写的说,没有大写,大写就报错啦,我那只是说有这个属性而已

追答

呵呵,那就算我白说了。反正我测试后显示的是DIV

追问

是吧,所以我说是不是我的环境有问题,如果有问题要如何设置?? 谢谢了

追答

我就不理解为什么都是小写?
alert(divNode.tagName);不行吗?
为什么 var divNode = tdNode.getElementsByTagName("div")[0]; 又可以?
别跟我说 B T N 这些不是大写字母

追问

呵呵,这就是语法,我也不是很清楚,谢谢啦!!!

追答

看过另一位网友的回答,我才猛然发现你的代码中有好多拼写错误哦,程序是严谨的,差一个字母都不行的。你先把这个搞好了再说吧。

追问

对啊,自己用记事本敲出来的,所以。。。。。。。哈哈哈 谢谢了哈!!!

第2个回答  推荐于2018-03-01

对兄弟伙佩服得五体投地啊!满篇的拼写啊,全是马虎,估计是初学吧

本回答被提问者和网友采纳
第3个回答  2013-05-10
没有getbyname的方法,因为html中可以定义多个相同name的元素。但id是唯一的
第4个回答  2013-05-10
改成document.getElementByTagName试试
相似回答