Как предупредить URL страницы, на которой не найден класс? - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь превратить этот код в цикл.Вместо того, чтобы повторять код внутри себя, я бы хотел, чтобы он:

  1. Если на странице существует класс «.previous», он получает его href и применяет к $ .get
  2. Повторяйте этот процесс, пока ".previous" класс больше не будет найден на странице
  3. Оповещение URL-адреса страницы, на которой ".previous" класс больше не найден.
var blogPrevious = $(".previous a").attr("href");

if ($(".previous")[0]) {
  $.get(blogPrevious, function(data) {
    var previousFind = $(data).find(".previous a").attr("href");
    $.get(previousFind, function(data) {
      var previousFind2 = $(data).find(".previous a").attr("href");
      alert(previousFind2);
    });
  });
}

1 Ответ

0 голосов
/ 22 февраля 2019

Вы можете достичь того, что хотите, используя recursion. Рекурсия - это просто когда функция вызывает себя.

Вот рабочий пример:

var count = 0;
recursiveGet();

function recursiveGet() {
    if(count < 10) {
        count = count + 1;

    $.get("https://httpbin.org/get", function(data){
        console.log("GET #"+count, data);
        recursiveGet();
    })
    } else { console.log("I'm done. I have run 10 times"); }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Итак, предположив, что ваша логика в порядке, вы можете попробовать что-то вроде этого:

var firstElement = $(".previous a").attr("href")
recursiveBlogPrevious( firstElement );

function recursiveBlogPrevious(element) {
    if($(element).length) {
        console.log("The DOM-element exists.", element);

    $.get(element, function(data){
        var foundElement = $(data).find(".previous a").attr("href");
        recursiveBlogPrevious(foundElement);
    })
    } else { console.log("Could not find element."); }
}

Просто добавьте нужноелогика.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...