0

特定のクラスを含まないテーブル内のすべての行を削除しようとしていますが、各行には少なくとも 2 つのクラスが含まれています

     <tbody id='orderlist'>
     <tr class='big selected'><td></td></tr>
     <tr class='big'><td></td></tr>
     </tbody>

     $('#orderlist').not('.selected').fadeOut('slow',function(){
     $(this).remove();
     }); 

最初に選択したクラスを含まない行をフェードアウトして削除できるようにしたいと考えています。

4

4 に答える 4

2

チェーンセレクターは、子(行)ではなく、選択された要素(それ自体).not('.selected')に作用しようとしています。次のようなことを試してください(セレクターに追加して、の子行を取得します):$('#orderlist')tbodytrorderlisttbody

$('#orderlist tr').not('.selected').fadeOut('slow',function(){
    $(this).remove();
});

フィドル: http://jsfiddle.net/WcWex/

于 2013-02-18T04:57:43.477 に答える
0

使用.children(): http://jsfiddle.net/UpHcu/

$('#orderlist').children().not('.selected').fadeOut('slow', function () {
    this.remove();
});
于 2013-02-18T04:57:46.770 に答える
0

filter()を使用して条件を適用し、必要な要素のセットを除外できます。

$('#orderlist tr').filter(function(){
    if(!$(this).hasClass('selected') && this.className.split(' ').length == 2)
        return $(this);
}).fadeOut('slow').remove();
于 2013-02-18T04:57:06.207 に答える
0

これを試して:

$('#orderlist .big').not('.selected').fadeOut('slow',function(){
    $(this).remove();
}); 
于 2013-02-18T04:57:31.630 に答える