4

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を配列にプッシュし続けます。現在使用しているセレクターを特定して、配列にインデックスを取得し、それに応じて配列を変更するにはどうすればよいですか?

4

2 に答える 2

1

map()jQueryメソッドを使用できます。

配列またはオブジェクト内のすべてのアイテムを新しいアイテムの配列に変換します。

$(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 に答える