window.onload = function () {
var lis=document.getElementsByTagName('li');
//alert(lis.length);
for(var i=0;i<lis.length;i++){
lis[i].onmouseover=function(){
alert(this.getElementsByTagName('div')[0]);
}
}
}如上代码,比如第六行“this.getElementsByTagName('div')[0]”,换成了li[i].getElementsByTagName('div')[0],就会出错:li is not defined。那么另外问一下,究竟是什么时候用this?非常感谢!
1 回答
已采纳
刚毅87
TA贡献345条经验 获得超309个赞
鼠标移入事件是在 for 循环走完之后才执行的,所以此时 i= lis.length, 很明显 li[lis.length]不存在;
所以此时得记录 i 的值,用 index.
window.onload = function () { var lis=document.getElementsByTagName('li'); //alert(lis.length); for(var i=0;i<lis.length;i++){ lis[i].index = i; lis[i].onmouseover=function(){ alert(lis[this.index].getElementsByTagName('div')[0]); } } }
谁调用这个函数, this 就指代谁.
望采纳!
添加回答
举报
0/150
提交
取消