JQuery | Фильтрующие элементы - PullRequest
0 голосов
/ 27 октября 2011

Может быть, вы можете мне помочь:

Мои функции:

 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>

Как изменить мои функции на:

  1. Удалить (фильтр)user (s) из моего контейнера div, если он не входит в строку.
  2. Если мой пользователь уже находится в контейнере, пропустите.
  3. Если это новый пользователь, просто добавьте его в контейнер.

Большое спасибо!

1 Ответ

0 голосов
/ 27 октября 2011

Как я понимаю, вы хотите удалить пользователей из DIV, если они не в JSON; вы хотите пропустить их добавление, если они есть в JSON; и вы хотите добавить их, если они не в DIV.

Ну, а почему бы просто не заменить содержимое DIV вместо добавления к нему?

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