<form>
<a name='lala'/><a name='lala'/>
</form>

<script type='text/javascript'>
var elem=document.getElementsByName('lala');
alert(elem.length);
</script>


警报弹出0!
这样就使下一个无法正常工作!

for(i in elem)
 elem[i].addEventListener('click',function(){alert('lala');}, false);


非常感谢!!

最佳答案

它不起作用,因为在您致电document.getElementsByName
DOM元素尚未加载,因此,您的document.getElementsByName('lala');将返回null。

仅在DOM元素就绪时,有几种执行功能的方法。最简单的方法是在您的<head>中创建一个函数,并在您的身体的load事件中调用它

<head>
    <script type="text/javascript">
    function domLoaded() {
       var elem=document.getElementsByName('lala');
          alert(elem.length);
       }
    </script>
</head>

<body onload="domLoaded();">


   ....


</body>


将javascript函数放在代码末尾时,您就可以在元素准备就绪时开始调用代码。那样也可以,但是以正确的方式进行处理并将所有JS代码放在head元素中不是更好吗?通过在整个代码中投掷JS代码,可以使您在需要解决问题时陷入困境。

08-15 18:55