1.html如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>try-函數(shù)</title>
<script type="text/javascript">
</script>
</head>
<body>
<div id="div1">aaa</div>
<div id="div2">bbb</div>
<div id="div3">ccc</div>
</body>
</html>
2.在,script標簽中插入如下js
window.onload=function () {
for (var i=1;i<4;i++){
var aa= document.getElementById('div'+i);
aa.addEventListener('click',function(){
alert(i);
})
}
}
執(zhí)行結(jié)果均為4;
3.改變代碼如下
window.onload=function () {
for (var i=1;i<4;i++){
(function (i) {
var aa= document.getElementById('div'+i);
aa.addEventListener('click',function(){
alert(i);
})
})(i)
}
}
得到了預期結(jié)果厌殉,點擊aaa時彈出1,bbb時彈出2侈咕,ccc彈出3年枕。
在js中函數(shù)內(nèi)部可以讀取全局變量,但是函數(shù)外部無法讀取函數(shù)內(nèi)的局部變量乎完。
第一種情況下i為全局變量,i始終取值為for循環(huán)的最后一個值品洛。
今天的學習中還出現(xiàn)了一個很無語的問題树姨,div中書寫id時多了一個空格摩桶,document.getElementById("div"+i)無論如何都取不到值。