我正在制作一个div列表,并希望每个人都提醒他们的号码,但结果我所有的div都警告11。
for(var i = 1; i <= 10; i++) {
$('#chatlist').append(
$("<div class='chatlist_cell'>" + i + "</div>").click( function() { alert(i) } )
)
}
答案 0 :(得分:2)
那是因为你没有通过关闭来保留我
for (var i = 1; i <= 10; i++) {
(function(index){
$('#chatlist').append($("<div class='chatlist_cell'>" + index + "</div>").click(function() {
alert(index)
}))
})(i);
}
另一种选择是使用each()
$.each(Array(10), function(index) {
$("<div class='chatlist_cell'>" + (index + 1) + "</div>").appendTo('body').click(function() {
console.log(index + 1)
});
});
$.each(Array(10), function(index) {
$("<div class='chatlist_cell'>" + (index + 1) + "</div>").appendTo('body').click(function() {
console.log(index + 1)
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
&#13;