2013-07-23 60 views
1

我有一個jQuery代碼:轉換jQuery代碼到MooTools的

$('#users').append(users.join('')).filter(function(i) { 
    return ids.indexOf(this.id) === -1; 
}).remove(); 

我怎麼可以重寫使用Mootools的JavaScript庫的代碼? 謝謝。

全部下面的代碼:

... 
    success: function(r) { 

     var users = [], 
      ids  = []; 

     for(var i=0; i< r.users.length;i++){ 
      if(r.users[i]){   
       users.push(_chat.render('user', r.users[i])); 
       ids.push('user-' + r.users[i].name);   
      } 
     } 


     $('#users').removeClass('sending2').append(users.join('')).children().filter(function(i) { 
      return ids.indexOf(this.id) === -1; 
     }).remove(); 
    }... 
+0

什麼是用戶數組和ID? –

+0

你好,Dimitar!感謝偉大的Mootools擴展。請檢查我的完整代碼塊(成功請求功能)。 – user889349

回答

2

不知道哪些用戶將包含 - 假設元素與ID喜歡user-name

var users = ["<div id='user-john'>john</div>", "<div id='user-bob'>bob</div>"], 
    ids = ['user-john']; 


$("users").adopt(new Element('div', {html: users.join('')}).getChildren().filter(function(user){ 
    return ids.indexOf(user.get('id')) !== -1; // unless it's another this.id... 
})); 

不知道它是相同的,但應該讓你開始。它只注入過濾的。如果您想要相反的話,請將過濾器反轉爲=== -1; - 它使用一個虛擬的div元素來存放數組中的動態元素,並將它們過濾到dom之外,而不是在裏面,這會變得更慢。

+0

工作解決方案在這裏:document.id(「users」).set('html',users.join('')); – user889349

+0

但我想添加新用戶到用戶列表中,下一步是從用戶列表中刪除不存在的用戶(r.users)...使用定期請求到服務器。 – user889349