Javascript 将事件绑定到数组中的选择器

Javascript 将事件绑定到数组中的选择器,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在使用一系列选择器: var selectors = ['#first_name', '#last_name']; 我希望能够将事件(如focus、change、keyup)绑定到该数组中的每个选择器。选择器连接到表单输入 对于绑定每个选择器,我有以下代码 for(var selector in selectors){ $('#form').find(selectors[selector]).on('change keyup click select focus', functio

我正在使用一系列选择器:

var selectors = ['#first_name', '#last_name'];
我希望能够将事件(如
focus
change
keyup
)绑定到该数组中的每个选择器。选择器连接到表单输入

对于绑定每个选择器,我有以下代码

for(var selector in selectors){
    $('#form').find(selectors[selector]).on('change keyup click select focus', function(){
    console.log(selectors[selector]); //this is here for testing
    });
}
这在逻辑上应该是可行的,但当我阅读控制台日志时,它会显示两次
#last_name


我已经检查了一遍又一遍表格,它与表格无关。我的代码中唯一的问题是我提供的这个单一逻辑结构。如果我在循环之前记录数组,它会将数组显示为
['first\u name','last\u name']
,所以我很困惑

您可以使用逗号分隔的选择器,不需要循环。在console中触发两次的原因是由于同时触发多个对象,即当您单击一个新输入时,它将同时触发click和focus事件

$('#form').find(selectors.join()).on('change keyup click select focus', function(){
    console.log(this); //this is here for testing
});

FWIW,您可以将选择器连接到单个字符串中,并使用逗号作为分隔符。因此,甚至不需要for循环,这就是您需要的saying@MarkHill当前位置没有必要那么做我只是尝试了你的解决方案,效果很好,给我一点,我“我接受你的回答。感谢您的快速解决方案@马克希尔:很高兴能帮忙