Javascript 将更改侦听器附加到所选jquery会在循环中进行选择,但不起作用

Javascript 将更改侦听器附加到所选jquery会在循环中进行选择,但不起作用,javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,我正在尝试在循环中初始化多个Selected select: var arr=[“#键1”、“#键2”]; 对于(arr中的var p){ $(arr[p]).selected().change(函数(){ log($(arr[p]).selected().val()); }); } 其中要素包括: <div> <select multiple="" id="key1"> <option value="A1">A1</optio

我正在尝试在循环中初始化多个Selected select:

var arr=[“#键1”、“#键2”];
对于(arr中的var p){
$(arr[p]).selected().change(函数(){
log($(arr[p]).selected().val());
});
}
其中要素包括:

<div>
    <select multiple="" id="key1">
        <option value="A1">A1</option>
        <option value="B1">B1</option>
    </select>
</div>
<div>
    <select multiple="" id="key2">
        <option value="A2">A2</option>
        <option value="B2">B2</option>
    </select>
</div>

这样做不需要循环。您可以通过用逗号分隔
id
选择器来检索这两个元素。在
change
处理程序中,您可以使用
this
关键字引用引发事件的元素。试试这个:

$("#key1, #key2").chosen().change(function () {
    console.log($(this).val());
});

循环中的绑定只影响最后一个,因此此解决方案要么使用闭包来解决它,要么只创建一个基于逗号分隔的选择器。@Jai,我现在意识到了。谢谢您的快速回复。你能看到问题中的编辑吗。如何按照您在回答中的建议,使用逗号分隔查找来存储选定的值?
$("#key1, #key2").chosen().change(function () {
    console.log($(this).val());
});