2011-05-16 61 views
0

我有增加的div容器div的附加元素,直到 - 使用同时具有动态添加元素

$.ajax(
    { 
     type: "GET", 
     url: "/LoadedData", 
     data: { "pageNumber": pageNumber }, 
     success: function (result) { 
      $('.Container').append(result); 
     } 
    } 

功能,我想执行该功能,直到这个div容器包含DIV与演XXX

我尝试用while循环来做到这一点,但看起来当我不喜欢:

while($('.Container div').is('#xxx')) 
{} 

功能没有看到附加到新的容器div的:/

回答

1

如果result与您的选择器不匹配,请将您的代码放入在callback:中递归调用的函数中。

它将继续运行,直到选择器匹配。

var container = $('.Container'); // cached the .Container element 

function add_to_container() { 

    $.ajax(
    { 
     type: "GET", 
     url: "/LoadedData", 
     data: { "pageNumber": pageNumber }, 
     success: function (result) { 
      container.append(result); 
      if(!$(result).is("#xxx")) { // if the result was not the one... 
       add_to_container();  // ...recursively call the function 
      } 
     } 
    } 
} 
+0

我认为该解决方案使用递归,但我认为性能... – netmajor 2011-05-16 19:05:57

+0

@netmajor:什么类型的性能?如果您的意思是获得正确的#xxx结果所需的总时间,那么请求会连续发送,因此需要最多的时间。您可以发送一堆请求,但不能保证他们会以相同的顺序回来。或者你可以让你的服务器发送批量的结果,搜索结果,如果找不到'#xxx'就附加它们,或者如果找到它们,则通过'#xxx'追加。我会说,while循环肯定不是正确的方法。 – user113716 2011-05-16 19:39:47

0

jquery具有遍历dom元素的每个函数。

$('.Container div').each(function(){});