2013-07-23 54 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