<ul>
        <li><a id="subcatalog0" href="" data-nav-down="subcatalog1">影坛快讯</a></li>
        <li><a id="subcatalog1" href="" data-nav-down="subcatalog2">精彩预告</a></li>
        <li><a id="subcatalog2" href="" data-nav-down="subcatalog3">新片上映</a></li>
        <li><a id="subcatalog3" href="" data-nav-down="subcatalog4">首播大片</a></li>
        <li><a id="subcatalog4" href="" data-nav-down="subcatalog5">热播影院</a></li>
        <li><a id="subcatalog5" href="" data-nav-down="subcatalog6">经典影院</a></li>
        <li><a id="subcatalog6" href="" data-nav-down="subcatalog7">欧美电影</a></li>
        <li><a id="subcatalog7" href="">高清电影</a></li>
      </ul> for(var i = 0; i < 8; i++)
{
document.getElementById("subcatalog" + i).onfocus = function()
{
window.alert(i); //这里是8,如何弹出1或2...
}
}//如果写成这样也不行
for(var i = 0; i < 8; i++)
{
document.getElementById("subcatalog" + i).onfocus = function(i)
{
window.alert(i); //这里Event对象
}
}

解决方案 »

  1.   

    闭包。for(var i = 0; i < 8; i++)
            {
                document.getElementById("subcatalog" + i).onmouseover = function(i)
                {
                    return function(){alert(i)}; //这里是8,如何弹出1或2...
                }(i);
            }
      

  2.   


    后面那个(i) 这个 我有点 不太明白 希望  KongHuLu 前辈可以在解释清楚 谢谢啦
      

  3.   


    for(var i=0;i<8;i++){
    (function(i){
    document.getElementById("subcatalog" + i).onfocus=function(){
    alert(i);
    }
    })(i);
    }1楼的应该会马上执行吧
      

  4.   

    哦,不好意思,我没看清楚你加了 return function但是获取的应该是最后一个了
      

  5.   

    for(var i = 0; i < 8; i++)
            {
    (function(i){
                document.getElementById("subcatalog" + i).onfocus = function()
                {
                    window.alert(i); //这里是8,如何弹出1或2...
                }
    })(i)
            }
      

  6.   


    for(var i = 0; i < 8; i++)
            {
                (function(i){
                document.getElementById("subcatalog" + i).onfocus = function()
                {
                    window.alert(i); //这里是8,如何弹出1或2...
                }
                })(i)
            }这样写会立即执行