递归JQuery Load命令

时间:2010-05-04 10:59:14

标签: jquery jquery-load

我正在使用JQuery将内容加载到div元素中,一切正常。

$("#content").load('www.urltogetcontentfor.com')

我现在想扩展这个。我所拥有的结构是树的结构,其中每个分支可以(或可以不)具有附接到其上的子分支。我想要发生的是,JQuery load命令被递归调用,直到没有附加子项为止。类似于以下步骤:

  1. 调用Jquery加载函数将内容加载到“content”div。
  2. 如果加载函数返回附加子项
  3. 再次调用JQuery加载函数以获取子项
  4. 重复步骤2和3,直到没有儿童可用。
  5. 有没有人在JQuery中完成此操作或知道处理此问题的插件?

    由于

1 个答案:

答案 0 :(得分:3)

递归加载内容可以通过以下原则完成:

function loadTree($element) {
  $element.each(function(){
    this.load('url', function(){
      loadTree(this.find('.children'));
    });
  });
}

loadTree($('#content'));

使用jQuery对象调用该函数。它遍历对象中的元素并为每个元素调用load。在成功回调中,它会在加载的代码中选择子项并自行调用。

但是,如果可能,您应该尝试使用一个请求获取整个树,例如将数据作为JSON返回并从中创建元素。