<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代码,可以使您在需要解决问题时陷入困境。