如何提醒找不到课程的页面的URL?

时间:2019-02-22 16:19:31

标签: jquery loops

我正在尝试将此代码转换为循环。我不想在其中重复代码,而是希望:

  1. 如果页面上存在“ .previous”类,则获取其href并应用于$ .get
  2. 重复此过程,直到在页面上不再找到“ .previous”类为止
  3. 警告不再存在“ .previous”类的页面的URL。
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 :(得分:1)

您可以使用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."); }
}

只需添加预期的逻辑即可。祝你好运!