Как зацыклить уже имеющийся цикл в JavaScript'e

93
20 февраля 2022, 09:00
var list = document.getElementsByClassName("класс-элемента");
var page = document.getElementByClassName("класс кнопки след.страницы");
for (var i=0; i<list.length; i++) {
list[i].click();
}

Дали задание,имеется сайт с 1000+ страницами и на каждой из странице есть элемент который нужно нажать. Я сделал цикл который ищет и нажимает все элементы с страницы на которой я сижу,но нужно чтобы после завершения цикла он перешел на след.страницу и начал цикл заново и так до тех пор пока элемент "класс кнопки след.страницы" не исчезнет. Пробовал двумя циклами но не выходит,буду очень благодарен за любую подсказку

Answer 1

Из простого, рекурсией, мне кажется, удобней всего делать что-то подобное. Не очень понятно, вы абстрактную функцию рассматриваете или что-то реальное делаете. Если не углубляться, то что-то такое должно получиться.

//объявляем функцию кликер, которая принимает url страницы, где нужно нажать на элементы 
function clicker(url) { 
    document.getElementsByClassName("класс-элемента").forEach((item)=>{ 
        item.click(); 
    })//кликаем по элементам 
     
    //в текущем варианте nextUrl будет просто ссылкой на элемент. Нужно получить именно url, на который ссылается этот элемент. Метод его получения зависит от реализации кнопки. 
    let nextUrl = document.getElementByClassName("класс кнопки след.страницы") 
   
    nextUrl && clicker(nextUrl); //если на странице был найден URL следующей страницы, то запускаем кликер и передаем ему URL следующей страницы 
}

READ ALSO
Как лучше организовать модель корзины в mongodb

Как лучше организовать модель корзины в mongodb

Помимо модели корзины, есть еще модель products и модель userУ меня есть два варианта организации: 1) Корзина хранит в себе только ID продуктов и будет...

110
Границы области кластеризации PruneCluster

Границы области кластеризации PruneCluster

Столкнулся с такой проблемой: пытаюсь сделать отображение области кластеризации в PruneCluster, как в markerclustergroup (отвечает свойство ShowCoverageOnHover)

86