1

为什么会这样:

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;
}
4

1 回答 1

5

因为 m 的全局值将设置为8循环结束和触发事件时,您的div选择器将是input[id="sel'+8+'"]'

您可以使用带有通配符的属性选择器来绑定事件。您可以id通过删除div_selfromid并使用索引来制作输入的 id 并使用id selector来获取索引。

jQuery('id^=div_sel]').click(function() { 
     index = this.id.replace('div_sel', '');
     jQuery('#sel'+ index).val('blahblah');
});
于 2013-04-09T15:35:12.177 回答