我有以下代码,工作正常:
for (var i = 0; i < <?php echo count($set); ?>; i ++){
$('#inc' + i).on('click', function(){
$('#scratchbox').val('test');
});
}
Run Code Online (Sandbox Code Playgroud)
但我需要的是这个,这是行不通的(唯一的区别是'#scratchbox'已经改为'#set'+ i):
for (var i = 0; i < <?php echo count($set); ?>; i ++){
$('#inc' + i).on('click', function(){
$('#set' + i).val('test');
});
}
Run Code Online (Sandbox Code Playgroud)
#inc divs和#set文本框都是由PHP在同一个地方同时生成的(技术上,按顺序排列:#set1,#inc1,#set2,#inc2等).另外,我有这个,它能够在事件处理程序是一个静态的#submit div时检索#set文本框中包含的值就好了:
$('#submit').click(function(){
for (var i = 0; i < <?php echo count($set); ?>; i ++){
sets[i] = $('#set' + i).val();
}
});
Run Code Online (Sandbox Code Playgroud)
我应该改变什么以及为什么?
为什么不为您的元素添加类名,以便您可以执行以下操作:
$(document).on('click', '.click_element', function() {
var ID = $(this).attr('id');
$('#set' + ID).val('test');
});
Run Code Online (Sandbox Code Playgroud)
并使for循环分开,创建具有ID的点击元素.
请注意,此解决方案在执行方面要比在循环中绑定单击事件快得多.