2011-10-27 102 views
0

可能是你能幫助我:jQuery |過濾元件

我的功能:

getMyUsers : function(callback){ /*- get users every 5 seconds*/ 
    ... 
    ... 

    success: function(r) {   
      var users = []; 
      for(var i=0; i< r.users.length;i++){ 
      if(r.users[i]){ 
       users.push(render('user',r.users[i])); 
      } 
      } 
      jQuery('#chatUsers').append(users.join('')); 
    } 

     url: 'path/handler.php?action=getusers'; 
} 

此功能從服務器獲取我的用戶。它配備的JSON字符串,如:

{ 
    "users": [{ 
     "name": "username_temp", 
     "last_activity": "16:29:16", 
     "gravatar": "thumb_1546278d532ea4c1cddc7a4b.jpg", 
     "status": "", 
     "usertype": "M", 
     "typing": "0" 
    }, { 
     "name": "admin", 
     "last_activity": "16:29:16", 
     "gravatar": "thumb_7d41870512afee28b70d5d91.jpg", 
     "status": "", 
     "usertype": "M", 
     "typing": "0" 
    }], 
    "total": "2" 
} 



    render: function(template,params){ 
     switch(template){ 
     case "user"; 
     arr = ['<div class="user" id="user-',params.name,'">',params.name,'</div>']; 
     break; 
     } 
     return arr.join(''); 
    } 

我的HTML容器:

<div id="chatUsers"></div> 

我應該如何改變我的功能:從我的DIV

  1. 刪除(過濾器)用戶(S)容器如果不在字符串中。
  2. 如果我的用戶已經在容器中跳過。
  3. 如果這是一個新用戶,只需將其附加到容器。

非常感謝!

+0

我想你需要ID =「用戶'在 – Blazemonger

+0

你'render'功能它關閉:ID =」之後'關閉單引號字符串用戶,params.name,'」 – user889349

+0

外觀再次 - 計算單引號,你有它們的奇數 – Blazemonger

回答

0

據我所知,你想從DIV中刪除用戶,如果他們不在JSON中;如果他們在JSON中,您想跳過添加它們;如果它們不在DIV中,你想追加它們。

那麼,爲什麼不只是替換DIV的內容而不是追加它呢?

jQuery('#chatUsers').html(users.join('')); 
+0

這是我以前的解決方案,它工作(但我可以看到一個眨眼效果,當我只是在容器中替換我的HTML)但我需要使用.remove和.append解決方案。 – user889349