我正在尝试将此代码转换为循环。我不想在其中重复代码,而是希望:
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);
});
});
}
答案 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."); }
}
只需添加预期的逻辑即可。祝你好运!