为什么不能直接用for循环的变量m?
for (var m = 0; m < menuItenms.length; m++) {
menuItenms[m].setAttribute("data-index",m);
menuItenms[m].onmouseover=function(){
submenu.className="sub-menu";
var idx =this.getAttribute("data-index");
// var idx =m;
//遍历所有的子菜单,隐藏掉
for (var j = 0; j < innerbox.length; j++) {
innerbox[j].style.display='none';
menuItenms[j].style.background='none';
}
menuItenms[idx].style.background='rgba(0,0,0,0.1)';
innerbox[idx].style.display='block';
}如代码,idx改为m不行这是为什么,不是都一样吗?
3
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕阿莹
2019-04-01 10:31:02
不同的呦,当function函数内部引用外部一个可变数值时,其引用的是这个可变数值的最终值
老师在3-6 点击圆点切换图片(1)的4分45秒到5分46秒老师有讲到哦
换个例子讲,如果没有在function中定义变量,而是在function外定变量,并不是触发这个function的时候才去对这个变量进行改变,而是在加载页面的时候,这个外部的变量就已经执行完了。
这里简单写了个案例:
<!DOCTYPE html >
<html>
<head>
<meta charset="">
<meta http-equiv="Content-Type" content="text/html; charset=u8" />
<title>jQuery实验室</title>
<style>
.myclass {
font-style: italic;
color: darkblue;
}
/* 高亮css类 */
.highlight {
color: red;
font-size: 30px;
background: lightblue;
}
</style>
</head>
<body>
<form id="info" action="#" method="get">
<div class="left clear-left">
<input type="submit" value="提交" onclick="test()"/> <input type="reset" value="重置" />
</div>
</form>
</div>
</div>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
var a = 1;
function test(){ a++ ;alert(a)}
a= 3;
</script>
</body>
</html>这个也是同理,我们需要把它存到域中,并在function内部取出来使用。
如果我的回答解决了你的问题,请采纳,祝学习愉快.
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星