Нажав на все элементы, получая класс - PullRequest
0 голосов
/ 05 октября 2019

Я нажал на бесчисленное количество ссылок на stackoverflow, похожих на мой вопрос, но ни один из ответов не работает для меня.

https://soundoftext.com/ Этот сайт. Я пытаюсь загрузить несколько аудио одновременно, нажимая каждую отдельную кнопку загрузки. Попытка сделать это в консоли для Chrome.

$( ".card__actions a:contains('Download')" ).each(function( index ) {
  $(this).click();
});

^ Кажется, это возвращает массив. r.fn.init (X) ...

buttons = document.getElementsByClassName('card__action');

 for(var i = 0; i < buttons.length; i++)  
     buttons[i].click();

^ Я тоже пробовал, но тогда нужно только нажать последний элемент card__action.

Это, наверное, супер глупо и очевидно, но я не могу понять это на всю жизнь. halp

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Создатель звука текста здесь. Я думаю, что вы, возможно, мне по электронной почте? 100

В любом случае, вот JavaScript, который работает для меня в Chrome. Открывается новая вкладка для каждого mp3-файла:

$('.sounds.grid').querySelectorAll('a[download]').forEach(a => window.open(a.href))

0 голосов
/ 05 октября 2019

Попробуйте создать новые ссылки и щелкнуть по ним

buttons = document.getElementsByClassName('card__action')
function downloadURI(uri, name) 
{
    var link = document.createElement("a")
    link.download = name
    link.href = uri
    setTimeout(()=>{
        link.click()
    },50)
}

for (let i=0;i<buttons.length; i++) {
if (buttons[i].textContent=='Download')
    setTimeout(()=>{
        console.log(`dispatched, ${i}, ${buttons[i].href}`)
        downloadURI(buttons[i].href,buttons[i].href)
    },(i+1)*450)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...