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