2012-06-24 65 views
0

我已經看過幾個類似的問題,但我仍然可以看到它的工作。我試圖隱藏在頁面上自動生成的表中的特定列。我設法隱藏列標題和第一行中的相應單元格,但我不確定如何使其適用於其餘行。我錯過了什麼?基於列標題的jQuery隱藏表列

$(document).ready(function() { 
    $("table.lc_Table:eq(0) tr:eq(0) th").each(function(ind,ele) { 
     if($.trim($(this).text()).match(/(Available|Order Limit)/gi)) 
     { 
      $("table.lc_Table:eq(0) tr th:eq("+ind+"), table.lc_Table:eq(0) tr td:eq("+ind+")").hide(); 
     } 
    }); 
}); 

<table border="0" cellspacing="0" cellpadding="4" class="lc_Table"> 
<tr> 
    <th class="lc_Heading"> 
     <p class="PaddedListHeadingsC">Ticket Class</p> 
    </th> 
    <th class="lc_Heading"> 
     <p class="PaddedListHeadingsC">Available</p> 
    </th> 
    <th class="lc_Heading"> 
     <p class="PaddedListHeadingsC">Order Limit</p> 
    </th> 
    <th class="lc_Heading"> 
     <p class="PaddedListHeadingsC">Price</p> 
    </th> 
</tr> 
<tr class="lc_Row0"> 
    <td class="lc_Cell"> 
     <p>Attendee1</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>50</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>No Limit</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>$0.00</p> 
    </td> 
</tr> 
<tr class="lc_Row1"> 
    <td class="lc_Cell"> 
     <p>Attendee2</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>50</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>No Limit</p> 
    </td> 
    <td align="right" class="lc_Cell"> 
     <p>$0.00</p> 
    </td> 
</tr> 

+0

參考http://stackoverflow.com/questions/12455699/show-hide-table-column-with-colspan -using-jquery回答colspan – Lijo

回答

0

:eq正在評估到只有一個元素。而是使用:nth-child,它相對於父元素進行計數。

+0

這就像一個魅力感謝...這是我最終與。 (函數(),函數(){(「table.lc_Table:eq(0)tr:eq(0)th」)。 $(this).text())。match(/(Available | Order Limit)/ gi)) $ {「table.lc_Table:eq(0)tr th:nnth-child(」+(ind + 1 )+「),table.lc_Table:eq(0)tr td:nth-​​child(」+(ind + 1)+「)」)。hide(); } }); }); –

2

應工作

$('tr').each(functioN(){ 
    $(this).find('td').eq(0).hide(); 
}) 

對於TH & TD既可以使用

$('tr').each(functioN(){ 
    $('tr').children().eq(0).hide(); 
})