Как я могу последовательно передать массив URL-адресов в URL-адрес $.Ajax?

var a;
var urlArray = [];

$("a").each{function(){ 
    a = $(this).attr("href"); 
    urlArray.push(a);
});

var sArray = [];

$.each(urlArray, function(x, y){
         $.ajax({
               url: y, // pass the URLs consecutively
               type: 'get',
               dataType: 'html',
               success: function(data){
                   sArray.push( $("video").attr("src") );
                }
         })
});

log(sArray); // returns a single URL, not array as expected

Я пытался получить src значений <video> элементов с помощью $.Ajax вызовов. Я пытаюсь последовательно передать массив URL-адресов в $.Ajax через $.each, но результаты, зарегистрированные в success:, поступают только с одного URL-адреса. Я ожидаю, что будет возвращен массив, но я могу только .push добавить одно значение в sArray.

Может ли кто-нибудь объяснить, как мне удается последовательно извлекать нужные мне данные с каждого URL-адреса, отправленного в $.Ajax? Спасибо.

Примечание. Проще говоря, мне нужно передать массив URL-адресов в $.Ajax, чтобы я мог получать данные с каждого из этих URL-адресов.


person Lithis    schedule 23.07.2020    source источник
comment
array.push() возвращает длину массива. Итак, var urlArray = urlArray.push(a); не делает того, что вы думаете.   -  person peeebeee    schedule 23.07.2020
comment
Я отредактировал топ.   -  person Lithis    schedule 23.07.2020
comment
Вероятно, вам нужна функция push внутри функции each.   -  person peeebeee    schedule 24.07.2020