Jquery 如何在整个网站中添加单个类并将其应用于变量?
我有一个网站,有类。张贴在多个页面上。我需要加总次数。帖子出现在这个网站上-跨越所有页面-并将该总和应用到一个变量Jquery 如何在整个网站中添加单个类并将其应用于变量?,jquery,Jquery,我有一个网站,有类。张贴在多个页面上。我需要加总次数。帖子出现在这个网站上-跨越所有页面-并将该总和应用到一个变量 $("document").ready(function(){ $.get('www.website.com', function(data){ var count = $(data).find(".post").length; alert(count); }); }); 您可以尝试以下方法,请注意它可能包含错误,因为我无法测试
$("document").ready(function(){
$.get('www.website.com', function(data){
var count = $(data).find(".post").length;
alert(count);
});
});
您可以尝试以下方法,请注意它可能包含错误,因为我无法测试它。其主要思想是让一个函数get递归地计算匹配数,直到出现错误,这意味着如果页面没有顺序,它将无法工作
$("document").ready(function(){
var count = 0,
maxErrors = 5,
selector = '.post';
function countElements(selector, page, onEnd)
{
$.ajax({
type : 'GET',
url : '/blog/' + page,
success: function(data) {
console.log(data);
count += $(data).find(selector).length;
console.log('Page ' + page + ' current count ' + count);
countElements(selector, page + 1, onEnd); // recursion, load next page
},
error: function() {
maxErrors--;
if (maxErrors < 0) {
onEnd(count, page);
} else {
countElements(selector, page + 1, onEnd); // recursion, load next page
}
}
});
}
countElements(selector, 1, function(total, pages) {
alert('There is a total of ' + total + ' (' + selector + ') on ' + pages + ' pages');
}); //start on page 1
});
您可以通过AJAX和increment进行爬网,查看哪些都存在,但这将非常非常缓慢。如果每个请求需要1秒的时间,并检查50个博客是否存在,则至少需要50秒 检查是否有包含博客URL的站点地图,通常存在一个。您可以尝试/sitemap、/sitemap.php或/sitemap.xml。这样,您只需获取相关页面,而不必滥用资源,从而节省您的时间和精力
然后,我建议您使用PHP或服务器端语言来实现这一点。这些可以通过服务器的网络而不是本地连接进行优化和工作。对于每个页面,将结果存储为html或要查找的计数。现在,下一次跑步,你不必再重复所有的动作,只要继续你原来的动作,就可以节省大量的时间。首先,你实际上没有在这里问任何问题。第二,听起来你需要一个循环。转换成问题!是否有其他api,即/博客?全部blog@Satpal,/blog将是主页,而/blog/1,/blog/2将是附加页面。是否按顺序进行?如果按这种方式进行,可以允许跳过一个页面。一个项目被删除并不是不可想象的,一个简单的检查来继续一次尝试不会造成太大的伤害,并且可能会恢复更多的数据:谢谢,@claudio,但它不会用.post类获取任何元素。它只显示了0。@Martijn刚刚添加了错误部分。@Weebs控制台上记录了什么?@claudio以下是控制台上的内容:index:339 Uncaught TypeError:onEnd不是Object上的函数。错误索引:339在l jquery.min.js:2在Object.fireWith[作为rejectWith]jquery.min.js:2 at T jquery.min.js:2 at XMLHttpRequest.r jquery.min.js:2