从多个远程页面加载?

时间:2011-07-15 00:12:02

标签: jquery

我正在尝试制作一个代码,自动计算我论坛特定成员组中的成员(确切地说是Proboards)。成员名称在标记有group0,group1等类的标记中。所以,我所做的就是调用View All Members页面中的所有名称来自动获得成员数。

但是,我发现“查看所有成员”页面每页最多只能显示200个名称。因此,如果我的论坛超过了200名会员总数,则无法在计数中包含出现在后续页面上的成员。

所以我问,是否可以从两个或多个远程页面加载元素?

顺便说一句,这是我的代码的样子:

$(document).ready(function(){

$('<div></div>').load("/index.cgi?action=members&view=all&perpage=200 a[class^='group']", function () {
    $('#result1').text( $('a.group1', this).length );
    $('#result2').text( $('a.group2', this).length );
  });

  });

1 个答案:

答案 0 :(得分:0)

您可以在循环中使用$ .get来获取多个页面,然后将这些页面中的信息存储在变量中(每个循环迭代都可以添加到变量中)。

您必须进行的一项更改是如何从页面中解析信息,因为$ .get不允许您使用选择器检索页面片段(例如“a [class ^ ='group']”选择器) )。

var counter = 1;
var all_data = "";
while (counter < 5) {
    $.get('/index.cgi?action=members&view=all&perpage=200', function (data) {
        all_data += data;
    });
    counter++;
}

一些注释:

  • 您可以使用计数器变量来递增您要检索的页面,以便while循环的每次迭代都会获得一个新的成员列表页面。
  • 匿名函数中处理来自ajax请求的响应的数据变量是整页(如上所述,无法使用$ .get检索页面片段)但是您可以将此信息解析为您想要的内容在将其保存到all_data变量之前。
  • 您可以将数据添加到dom中,而不是将数据保存到all_data变量。

以下是JQuery的相关文档:

$。get() - http://api.jquery.com/jQuery.get/

load() - http://api.jquery.com/load/