1

私は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();
   }...
4

1 に答える 1

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 の内側ではなく外側でそれらをフィルタリングします。これは遅くなります。

于 2013-07-23T09:04:34.857 に答える