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

8ループが終了し、イベントが発生したときにm のグローバル値が設定されるため、divセレクターはinput[id="sel'+8+'"]'

属性セレクターとワイルドカードを使用して、イベントをバインドできます。idから削除してdiv_selからインデックスを取得しid、入力の id を作成するためにインデックスを使用し、id セレクターを使用できます。

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