<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);
非常感谢!!
答案 0 :(得分:2)
这是行不通的,因为当你拨打document.getElementsByName
时
DOM元素尚未加载,因此,document.getElementsByName('lala');
将返回null。
有多种方法可以在DOM元素准备就绪时执行功能。最简单的方法是在<head>
中创建一个函数,并在身体的加载事件中调用它
<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代码,当你需要解决问题时,整个代码将会让你生活在地狱。
答案 1 :(得分:0)
getElementsByName,有关所有浏览器兼容性的信息,请参阅here。
然而,这对我有用。我正在运行Chrome 10.0.648.127
答案 2 :(得分:-3)
javascript代码必须包含在页面底部, 这就是为什么你应该总是将你的js代码放在页面底部。 非常感谢大家;)