日期:2014-05-16  浏览次数:20392 次

关于用getElementsByTagName弹出[object HTMLCollection]的问题
HTML code
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        var a = document.getElementsByTagName('a');
        alert(a);
    </script>
</head>
<body>
<a href="#"></a>
<a href="#"></a>
<a href="#"></a>
<a href="#"></a>
</body>
</html>

不是应该获取所有a标签的一个列表吗?为什么会弹出object HTMLCollection呢?而且我用alert(a[0])弹出的是undefined?

------解决方案--------------------
代码顺序的问题,JS代码位于目标元素之前,代码被执行时目标元素还没有加载到DOM树中。
HTML code
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<a href="#">DEMO</a>
<a href="#"></a>
<a href="#"></a>
<a href="#"></a> 
<script type="text/javascript">
var a = document.getElementsByTagName('a');
alert(a[0].innerHTML);
</script>
</body>
</html>

------解决方案--------------------
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<script type="text/javascript">
var a = document.getElementsByTagName('a');
alert(a[0].innerHTML);
</script>
</body>
</html>



script放dom之后,或window.onload里