使用过滤jquery隐藏表行

时间:2011-10-12 16:00:06

标签: javascript jquery

我有以下示例http://jsfiddle.net/zidski/MxqRu/1/

当您点击2010时,我需要使用列表项消失估值。

以下是我用来执行此操作的代码:

$("#yearfilter a").live("click", function(e) {
                e.preventDefault();
                //var v = $(this).val();
                var v = $(this).attr("data-value");
                if(v.length > 0) {
                    $('tr.reports').show();
                    $('tr.reports ul').hide();
                    $('tr.reports ul.year-'+v).show();
                    $('tr.reports').each(function() {
                        if($('ul:visible', this).size() == 0) {
                            $(this).hide();
                        }
                    });
                } else {
                    $('tr.reports').show();
                    $('tr.reports ul').show();
                }
            });

2 个答案:

答案 0 :(得分:0)

给每个tr一个类似id="row_2010"的ID,然后查找并立即隐藏整个行。

<强>更新

我强烈建议不要使用这么多表,并使用更多类来对数据结构进行分类。这将有助于您的javascript更干净,简洁,功能更容易。

<强>更新

我调整了你所有的javacsript和你的一些HTML。这是一个完整的示例jsFiddle Demo

答案 1 :(得分:0)

我在我的项目中完成了这样的事情:

function toggleRow(row_id) {
    row_selector = "#row_" + row_id;
    $(row_selector).toggleClass("shown hidden")
}

然后在CSS中:

.hidden {display:none;}
.shown {}

然后在HTML中我有交替的表行,其中奇数行作为偶数行中内容的标题。单击奇数行会切换相应偶数行的可见性。

...
<tr onclick="toggleRow(17)">...</tr>
<tr class="hidden" id="row_17">...</tr>
...