如下代码,执行后在页面生成了5个按钮,分别为0,1,2,3,4
可是当我点击按钮的是为什么弹出来的alert对话框都是5呢?
在btn.onclick中的i的值好像一直是5?<script type="text/javascript">
for(i=0;i<5;i++){
var btn=document.createElement("button");
btn.value = i;
btn.onclick=function(){
alert(i);
}
document.body.appendChild(btn);
}
</script>
可是当我点击按钮的是为什么弹出来的alert对话框都是5呢?
在btn.onclick中的i的值好像一直是5?<script type="text/javascript">
for(i=0;i<5;i++){
var btn=document.createElement("button");
btn.value = i;
btn.onclick=function(){
alert(i);
}
document.body.appendChild(btn);
}
</script>
用this.value 固然是对的,但是如果
btn.value = "按钮"+i;
这样的话不就又不对了啊,我上面的代码只是举个例子的
for(i=0;i<5;i++){
var btn=document.createElement("button");
btn.value = "按钮" + i;
btn.onclick=function(){
alert(this.value);
}
document.body.appendChild(btn);
}
</script>
这样?
<script type="text/javascript">
for(i=0;i<5;i++){
var btn=document.createElement("button");
btn.value = "按钮"+i;
btn.tag = i; //设置个标记
btn.onclick=function(){
alert(this.tag); //输出标记
}
document.body.appendChild(btn);
}
</script>
var btn=document.createElement("button");
btn.value = "按钮" + i;
(funtion (v){
btn.onclick=function(){
alert("按钮" + v);
}
})(i);
document.body.appendChild(btn);
}