我想简单地将 onclick 事件分配给li
无序列表中的一系列元素。li
我不想通过定义大量唯一 ID 并手动将事件添加到每个元素来以凌乱的方式进行操作,而是希望通过for
循环以编程方式进行操作。
html:
<ul id="homeNav">
<li><a title="Back to home page" href="">home</a></li>
<li><a title="Play" href="">play</a></li>
<li><a title="About the site?" href="">about</a></li>
<li><a title="Latest development news and info." href="">dev blog</a></li>
<div class="clear"></div>
</ul>
Javascript:
window.onload = function()
{
var parentList = document.getElementById('homeNav');
var listItems = parentList.getElementsByTagName('li');
var numItems = listItems.length;
for(var i = 0; i < numItems; i++)
{
listItems[i].onmouseover = function()
{
listItems[i].getElementsByTagName('a')[0].style.color = 'blue';
}
listItems[i].onmouseout = function()
{
listItems[i].getElementsByTagName('a')[0].style.color = '#cccccc';
}
}
}
我得到错误listItems[i] is undefined
在我看来,事件实际上是在寻找i
索引变量,而不是使用在将事件添加到触发器时分配给它的数字,或者i
变量可能不在闭包的范围内?