jQuery排序表列

时间:2015-12-07 13:12:03

标签: jquery html sorting

我正在尝试使用jQuery对表进行排序。在我的表中,我需要排序2列,如果排序,则必须隐藏该行。

我的表在创建时看起来像这样:

<table id="vermogen_gewicht" class="table table-hover vermogen_gewicht">
<thead></thead>
<tbody>
    <tr class="uitvoering_1 ">
        <td class="radiobutton">
        <td id="gewicht" class="gewicht">2000</td>
        <td id="type" class="type">L1H1</td>
    </tr>
</tbody>

这是我用jQuery排序的一切。我使用的jquery是:

var criteria;
$('#filtertype').change(function(){
    var criteria = $(this).val();
    if(criteria == 'ALL'){
        $('.vermogen_gewicht tr').show();
        return;
    }
    $('.type').each(function(i,option){
        if($(this).html() == criteria){
            $(this).parent().show();
        }else {
            $(this).parent().hide();
        }
    });
});

这样做是因为我在<select>元素中选择了一个选项。然后隐藏与所选选项不具有相同值的元素。这按预期工作,但在我根据“类型”排序后,我现在想要根据“gewicht”进行排序;我使用此代码执行此操作:

$('#filtertype1').change(function(){
    var criteria1 = $(this).val();
    if(criteria1 == 'ALL'){
        $('.vermogen_gewicht tr').show();
        return;
    }
    $('.gewicht').each(function(i,option){
        if($(this).html() == criteria1 && $('.type').html() == criteria){
            $(this).parent().show();
        }else {
            $(this).parent().hide();
        }
    });
}); 

但是这不起作用,例如我选择类型1,它显示每行包含类型1并且它隐藏其他行。然后,当我在元素“gewicht”上选择2000时,它应该显示类型1和gewicht 2000的所有内容,但现在它只是隐藏了所有内容。

即使我改变了这个:  if($(this).html() == criteria1 && $('.type').html() == criteria){ 到这个 if($(this).html() == criteria1 { 它将正常工作,如果我选择type = 1 gewicht = 2000然后它将正确显示并隐藏其他行,但当我将“gewicht”更改为2100时,它也将显示类型2,因此它将覆盖第一个排序。这可能不会发生。我该如何解决这个问题?

0 个答案:

没有答案