参数引用问题
来源:6-1 案例总结
Durians
2017-12-27 15:40:11
6回答
你不是想在单击事件中,能够获取到,其他元素单击事件中改变的index值吗,你现在已经实现了呀。只是在单击事件的外部输出的是0,在单击事件内是可以访问到index的当前值的。
怎么都被占用了呢
2017-12-28
看图标注
代码是按照从上向下的顺序执行的,先定义了index为0,然后给button绑定单击事件,但是并未触发,所以index的值不改变,然后继续向下走,输出index,为0,继续向下,给button1绑定单击事件,也是未触发的哦。
代码只走这一遍。当点击按钮触发单击事件时,只是在内存中访问改变index的值,打印index的值那一句代码不会再执行了。所以只打印一个index的初始值0,而且只有那一次。
怎么都被占用了呢
2017-12-28
你已经获取到了呀,这样修改一下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="random.css">
</head>
<body>
<div class="main">
<h3>随机数中的随机数</h3>
<input type="button" value="获取随机数" id="click" class="but">
<input type="button" value="随机" id="click1" class="but">
<div id="ran" class="ran"></div>
<div id="min" class="min"></div>
<div id="lottery" class="min">
</div>
<script type="text/javascript">
var button=document.getElementById("click");
var button1=document.getElementById("click1");
var min=document.getElementById("min");
// var lott=document.getElementById("ran1");
var list=new Array(), len=list.length, index=0;
var lott=document.getElementById("ran");
button.onclick=function(){
var random=Math.floor(Math.random()*101);
list[index]=random; index++;
lott.innerHTML+="您获取的随机数为"+random+";"+"<br/>";
list.sort(function(a,b) {return a-b;});
min.innerHTML="最小的值是"+list[0];
}
button1.onclick=function(){
var random1=Math.floor(Math.random(index+1));
var lot=list[random1]; lott.innerHTML="您抽中的值为"+list[random1];
}
</script>
</div>
</body>
</html>
怎么都被占用了呢
2017-12-28
是可以取到index的值的,只不过是你获取元素获取错了,html中没有id为ran1的元素哦
怎么都被占用了呢
2017-12-27
你将你的代码放上来吧,方便帮你调试
怎么都被占用了呢
2017-12-27
将index定义为全局变量就可以了,无论是哪个onclick函数都可以访问到index了。
相似问题