关于循环传值问题

hztgcl1986 2011-08-10 08:59:13

<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对象
}
}
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztgcl1986 2011-08-12
  • 打赏
  • 举报
回复

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

这样写会立即执行
MuBeiBei 2011-08-10
  • 打赏
  • 举报
回复
for(var i = 0; i < 8; i++)
{
(function(i){
document.getElementById("subcatalog" + i).onfocus = function()
{
window.alert(i); //这里是8,如何弹出1或2...
}
})(i)
}
ZXY900213 2011-08-10
  • 打赏
  • 举报
回复
lijianc23 2011-08-10
  • 打赏
  • 举报
回复
哦,不好意思,我没看清楚你加了 return function

但是获取的应该是最后一个了
lijianc23 2011-08-10
  • 打赏
  • 举报
回复

for(var i=0;i<8;i++){
(function(i){
document.getElementById("subcatalog" + i).onfocus=function(){
alert(i);
}
})(i);
}

1楼的应该会马上执行吧
abcd_ufo 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 konghulu 的回复:]
闭包。

JScript code


for(var i = 0; i < 8; i++)
{
document.getElementById("subcatalog" + i).onmouseover = function(i)
{
return function(){alert(……
[/Quote]

后面那个(i) 这个 我有点 不太明白 希望 KongHuLu 前辈可以在解释清楚 谢谢啦
潮起潮落 2011-08-10
  • 打赏
  • 举报
回复
闭包。

for(var i = 0; i < 8; i++)
{
document.getElementById("subcatalog" + i).onmouseover = function(i)
{
return function(){alert(i)}; //这里是8,如何弹出1或2...
}(i);
}
seachers 2011-08-10
  • 打赏
  • 举报
回复
学习学习

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧