如何使用Jquery获取特定Id的所有选定下拉列表值

时间:2012-07-13 22:55:51

标签: javascript jquery

我有一个包含多个select下拉菜单的表单,这些菜单以id:package开头,由用户动态添加。我的目标是将这些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的值,我将继续将值推送到数组上。如何确定我当前所在的选择器,以便我可以获得数组索引以相应地修改数组?

2 个答案:

答案 0 :(得分:1)

这就是你要找的东西吗?

$(document).on('change', 'select[id ^="package"]', function() {
     $(this).find('option:selected').each(function(i){
           arr[i] = $(this).val();
     });
});

答案 1 :(得分:1)

您可以使用jQuery map()方法:

  

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

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

DEMO