Javascript 循环中的jquery事件处理程序

Javascript 循环中的jquery事件处理程序,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我目前使用javascript创建html表 当用户单击按钮时。它在表中追加一个tr 在tr中,我还附加了select2元素 select元素的id带有一个递增的数字 因此,第一行的select元素的id为item-project-no-0,第二行的元素的id为item-project-no-1。诸如此类 但是现在,我需要为动态生成的表中的所有select元素注册事件侦听器。大概是这样的: $('#item-project-no-' + x).on('select2:select', f

我目前使用javascript创建html表

当用户单击按钮时。它在表中追加一个
tr

tr
中,我还附加了select2
元素

select
元素的id带有一个递增的数字

因此,第一行的
select
元素的id为
item-project-no-0
,第二行的元素的id为
item-project-no-1
。诸如此类

但是现在,我需要为动态生成的表中的所有
select
元素注册事件侦听器。大概是这样的:

    $('#item-project-no-' + x).on('select2:select', function (e) {

    });
我想尝试使用for循环。但是我不认为for循环知道它必须循环多少次,因为
select
元素的数量取决于计时器用户单击按钮的次数。我需要识别触发事件的单个select元素,并相应地处理它

我愿意听取所有的意见和建议。谢谢

试试这个例子:

$(document).on("select2:select","[id^='item-project-no-']",function() {
  //do somthing
}

为什么不给每个选择器一个类呢?然后你可以这样做:

$(document).on("select2:select", ".mySelectorClass", function() {
  // $(this) is the element
}

这甚至适用于以后动态创建的元素

如果可能,请改用事件委派。为每个元素创建单独的ID是一种代码味道我意识到,当我刚刚创建select元素时,控制台还将记录字符串“inside”。我认为只有当用户使用select元素进行选择时才会触发此事件?你知道为什么吗?