下面代码的console.log(this);   //this是指向window了 .而不是li元素本身..要怎么做才能让它指向li
<ul id="list">
<li>
<a href="" title="iphone_ios">苹果</a>
<div class="popDiv">

</div>
</li>
<li>
<a href="" title="安卓_java">google</a>
<div class="popDiv">

</div>
</li>
<li>
<a href="" title="wp">微软</a>
<div class="popDiv">

</div>
</li>
<li>
<a href="" title="mysql">甲骨文</a>
<div class="popDiv">

</div>
</li>
<li>
<a href="" title="全球最大的社交网站">facebook</a>
<div class="popDiv">

</div>
</li>
</ul>var list = document.getElementById("list");
var oli = list.getElementsByTagName("li");
for(var i=0; i<oli.length; i++){
oli[i].onmouseover = function(){
setTimeout(arguments.callee,20);
console.log(this);      
}

}

解决方案 »

  1.   

     oli[i]作为参数穿进函数里面,就可以使用选择的i元素了
      

  2.   

    js中将一个函数和对象绑定的方法:
    Function.prototype.bind = function(obj) {
    var method = this;
    return function(){ method.apply(obj, argument); }
    }所以你上面的方法调用改为:
    setTimeout(arguments.callee.bind(oli[i] ), 20)