2011-05-16 59 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(){});