6

基本的に、特定のクラスを持つすべての要素の ID を収集し、それらの ID を配列に配置しようとしています。私はjQuery 1.4.1を使用しており、.each()を使用しようとしましたが、実際には理解していないか、関数から配列を渡す方法がわかりません。

$('a#submitarray').click(function(){

    var datearray = new Array();

    $('.selected').each(function(){
        datearray.push($(this).attr('id'));
    });

    // AJAX code to send datearray to process.php file

});

私はこれにかなり慣れていないので、私はかなり離れていると確信しているので、アドバイスの助けは素晴らしいでしょう. ありがとう!

4

6 に答える 6

12

あなたも使うことができますmap()

$('a#submitarray').click(function(){

  var datearray = $('selected').map(function(_, elem) {
    return elem.id;
  }).get(); // edited to add ".get()" at the end; thanks @patrick
  // ajax

});

このmap()メソッドは、各インデックス (私の例では使用していません) と要素を指定された関数に渡し、戻り値から配列を作成します。

于 2010-06-09T17:12:01.003 に答える
4

mapjquery の関数を試してください:

datearray = $('.selected').map(function(){
    return $(this).attr('id');
}).get();

// use ajax to send datearray
于 2010-06-09T17:12:47.870 に答える
1

他の回答に基づいて、簡略化されたバージョンを次に示します。

var datearray = $('selected').map(function() {
  return this.id;
}).get();

map関数は各要素から ID を取得し、get関数は配列を返します。に渡された無名関数内で、選択された各要素を順番に参照しますmapthis

于 2010-06-09T17:43:39.147 に答える
1

配列は同じスコープ内にあるため、匿名関数に渡す必要はありません。

于 2010-06-09T17:19:23.700 に答える
0

IT はすべて問題ないように見えます。配列が作成され、コメントを配置した場所で使用できるようになります。自分を信じてください。

于 2010-06-09T17:11:45.137 に答える
0

配列をロードする必要があります。jQuery.post...を使用してサーバーに送信できます

$.post("process.php", datearray, function(dat) {
  alert('Response: ' + dat);
});
于 2010-06-09T17:23:56.667 に答える