jQuery隐藏没有某个类的行

问题描述:

我有以下psudeo html。我需要写一些jquery,它隐藏任何不包含具有特定类'FacetItemsActive'的锚标记的表的行。jQuery隐藏没有某个类的行

<table > 
    <tr> 
    <td> 
    <table> 
     <tr> 
     <td><a class='FacetItemsActive'/></td> 
     </tr> 
    </table> 
    </td> 
    </tr> 
    <tr> 
    <td> 
normal content 
    </td> 
    </tr> 
    <tr> 
    <td> 
normal content 
    </td> 
    </tr> 
</table> 

我有这个功能是接近,但不是那里。可以任何你jquery大师帮助我吗?

function eiaHideNonSelectedFacets(){ 
    // find the parent facet table 
    // find children tr of that table, and hide any rows that do not contain the class 'FacetItemsActive' 
    $('.FacetItemsActive').closest('table[facet]').find('tr').each(function(){ 

     if (! $(this).is('.FacetItemsActive')){ 
      $(this).hide(); 
     } 
    }); 
} 
+0

嵌套表几乎总是一个标志,你正在使用表布局,这[你应该避免](http://phrogz.net/CSS/WhyTablesAreBadForLayout.html)。 – Phrogz 2010-12-17 20:25:08

+0

是的,我没有创建HTML,我只需要使用它。 :( – BrokeMyLegBiking 2010-12-17 20:35:03

$("tr:not(:has('.FacetItemsActive'))").hide();

Test

+0

谢谢,这个作品很棒!很优雅! – BrokeMyLegBiking 2010-12-17 23:22:43

这不是你如何关闭一个 “一” 的标签。 应该使用。

+0

正斜杠,不反斜线。 – simshaun 2010-12-17 21:05:35

+0

Simshaun。Oops。Ta – Timbadu 2010-12-17 21:10:08