我做了如下所示的代码:
for(var is = 1; is <= 10; is++) {
$('#add1-' + is).click(function () {
console.log(is);
});
}
当我单击按钮id = {add1-1
时,控制台日志显示is = 11
与add1-2
中的相同,索引名称is
= 11
有什么可以解决的?
答案 0 :(得分:0)
如果您真的要进行循环,则必须执行以下操作:
for (var is = 1; is <= 10; is++) {
$('#add1-' + is).on('click', {is}, function(e) {
console.log(e.data.is);
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="add1-1">click me 1</div>
<div id="add1-2">click me 2</div>
<div id="add1-3">click me 3</div>
但是做这样的事情会更好:
$('[data-is]').on('click', function(e) {
console.log($(this).data('is'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-is="1" id="add1-1">click me 1</div>
<div data-is="2" id="add1-2">click me 2</div>
<div data-is="3" id="add1-3">click me 3</div>
data-
属性使您可以将数据绑定到元素,并且比为此目的使用ID本身更合适。 Read about them in the docs。