jQuery .each () с Массивом

В основном я пытаюсь собрать идентификаторы каждого элемента с определенным классом и поместить те идентификаторы в массив. Я использую 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

});

Я уверен, что я - путь прочь, поскольку я являюсь довольно новым в этом, таким образом, любая справка совета была бы потрясающей.Спасибо!

6
задан John Crain 9 June 2010 в 17:07
поделиться

6 ответов

Вы можете использовать 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() передает каждый индекс (который в моем примере не используется) и элемент в заданную функцию и строит для вас массив из возвращаемых значений.

12
ответ дан 8 December 2019 в 12:57
поделиться

Вам не нужно передавать массив анонимной функции, потому что он находится в той же области.

1
ответ дан 8 December 2019 в 12:57
поделиться

Попробуйте с помощью map функции jquery:

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

// use ajax to send datearray
4
ответ дан 8 December 2019 в 12:57
поделиться

Массив должен быть загружен; вы можете отправить его на сервер с помощью jQuery.post...

$.post("process.php", datearray, function(dat) {
  alert('Response: ' + dat);
});
0
ответ дан 8 December 2019 в 12:57
поделиться

По-моему, все выглядит хорошо, массив будет заполнен и будет доступен там, где вы разместили комментарий. Верьте в себя.

0
ответ дан 8 December 2019 в 12:57
поделиться

Основываясь на других ответах, вот упрощенная версия:

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

Функция map получает id от каждого элемента, а функция get возвращает массив. В анонимной функции, переданной в map, this обращается к каждому выбранному элементу по очереди.

1
ответ дан 8 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: