Étant donné que i a une portée globale, la valeur de i est 6 lorsque la boucle se termine, donc la sortie i est 6.
var liList = ul.getElementsByTagName('li');
for (var i = 0; i < 6; i++) {
liList[i].onclick = function () {
alert(i) // alert 出来的总是 6,而不是 0、1、2、3、4、5
}
};
L'utilisation d'une fonction immédiate peut résoudre ce problème.
var liList = ul.getElementsByTagName('li');
for (var i = 0; i < 6; i++) {
(function(j){
liList[j].onclick = function () {
alert(j) // alert出来的 0、1、2、3、4、5
}
})(i)
};