选择多个类实例中不包含类的元素

时间:2013-02-18 04:51:52

标签: jquery

尝试删除不包含特定类的表中的所有行,但每行包含至少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 个答案:

答案 0 :(得分:2)

.not('.selected')的链式选择器正在尝试对$('#orderlist')选择的元素(将是tbody本身)进行操作,而不是对子项(行)进行操作。尝试这样的操作(将tr添加到orderlist选择器以获取tbody的子行:

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

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

答案 1 :(得分:0)

您可以使用filter()并应用条件来过滤掉所需的元素集。

$('#orderlist tr').filter(function(){
    if(!$(this).hasClass('selected') && this.className.split(' ').length == 2)
        return $(this);
}).fadeOut('slow').remove();

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

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

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