gpt4 book ai didi

javascript - 将更改监听器附加到循环中的 jquery-chosen 选择,不起作用

转载 作者:行者123 更新时间:2023-11-30 16:42:04 26 4
gpt4 key购买 nike

我正在尝试在循环中初始化多个选择:

var arr = ["#key1", "#key2"];

for (var p in arr) {
$(arr[p]).chosen().change(function () {
console.log($(arr[p]).chosen().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>

问题是,last 'change' 事件处理程序正在附加到所有选择元素。例如,从“key1”中选择一个项目会打印出 null,因为 .chosen().val() 正在从“key2”获取值。有什么建议吗?

实际上我想将每个选择的选定值存储到不同的字段中,例如,存储到这个对象中:

var selected_values = {
selected_keys1 : {},
selected_keys2 : {}
}

最佳答案

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

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

Example fiddle

关于javascript - 将更改监听器附加到循环中的 jquery-chosen 选择,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com