为什么这样做:
var m = 1;
jQuery('#div_sel'+m).click(function() {
jQuery('input[id="sel'+m+'"]').val('blahblah');
});
但不是这样:
var m = 1;
while (m < 8) {
jQuery('#div_sel'+m).click(function() {
jQuery('input[id="sel'+m+'"]').val('blahblah');
});
m += 1;
}
答案 0 :(得分:5)
因为当循环结束时,m的全局值将设置为8
,并且当事件被触发时,div
选择器将为input[id="sel'+8+'"]'
您可以使用attribute selector with wild card绑定事件。您可以通过从id
删除div_sel
来获取id
中的索引,并使用索引生成输入ID并使用id selector。
jQuery('id^=div_sel]').click(function() {
index = this.id.replace('div_sel', '');
jQuery('#sel'+ index).val('blahblah');
});