【问题标题】:Convert jQuery code into Mootools将 jQuery 代码转换为 Mootools
【发布时间】:2013-07-23 06:53:32
【问题描述】:

我有一个 jQuery 代码:

$('#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();
   }...

【问题讨论】:

  • 用户数组和 id 中有什么?
  • 你好,迪米塔尔!感谢伟大的 Mootools 扩展。请检查我的完整代码块(成功请求函数)。

标签: javascript jquery html filter mootools


【解决方案1】:

不确定用户将包含什么 - 假设元素的 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 外部而不是内部过滤它们,这会更慢。

【讨论】:

  • 工作解决方案在这里:document.id("users").set('html', users.join(''));
  • 但我想将新用户添加到用户列表中,下一步是从用户列表中删除不存在的用户 (r.users)...使用定期向服务器发出请求。跨度>
猜你喜欢
  • 2011-01-23
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多