4

我有一个带有多个select下拉菜单的表单,这些下拉菜单以 id: 包开头,由用户动态添加。我的目标是将这些select下拉列表中的所有选定值放入一个数组中。这是我到目前为止的代码。

$(document).ready(function() {

    arr = new Array();

    $(document).on('change', 'select[id ^="package"]', function() {
        arr.push($(this).val());
        alert(arr.join('\n')); //for testing
    });

});

目前我所做的只是将选定的值推送到数组中,而不是为特定索引设置值。因此,如果我不断切换特定的值select,我将继续将值推送到数组中。如何确定我当前所在的选择器,以便我可以获取数组的索引以相应地修改数组?

4

2 回答 2

1

你可以使用 jQuerymap()方法:

将数组或对象中的所有项目转换为新的项目数组。

$(document).on('change', 'select[id ^="package"]', function() {
    var arr = $('select[id ^="package"]').map(function(){
       return this.id + " " + this.value
    })
});

演示

于 2012-07-13T23:10:57.720 回答
1

这是你要找的吗?

$(document).on('change', 'select[id ^="package"]', function() {
     $(this).find('option:selected').each(function(i){
           arr[i] = $(this).val();
     });
});
于 2012-07-13T22:58:58.463 回答