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')(将是tbody自身)选择的元素,而不是子元素(行)。尝试这样的事情(添加tr到您的orderlist选择器以获取您的子行tbody):

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

小提琴:http: //jsfiddle.net/WcWex/

于 2013-02-18T04:57:43.477 回答
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 回答
0

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

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