2013-07-22 130 views
0

我知道有很多關於隱藏列的帖子,但我會添加另一個問題。以下是php生成的html代碼片段:通過代碼隱藏表格列

<table id="dataGrid"> 
<col style="display:none"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<col style="display:table-column"> 
<thead><tr> 
... 

這根本不起作用。有沒有一種有效的方法來通過html/css隱藏列,而不需要使用大量的td? w3.org意味着有,但我已經嘗試了可見性,隱藏,摺疊表單元格等等 - 沒有結果。

我不想爲每個巨大的表中的每個類設置一個類,所以jquery是不可能的。

+0

向我們展示您的CSS以及您試過的東西 – feitla

+1

請參閱http://www.w3schools.com/TAGS/tag_col.asp'display'不是支持的屬性。 – DevZer0

+0

@ DevZer0 - 呃。 w3fools提到''標籤支持align,char,charoff,span,valign和width屬性。但是它沒有什麼可以說它會迴應哪種風格的屬性。也許你把' enhzflep

回答

3

嘗試這樣的CSS:

#myTable tr *:nth-child(2), { 
    display: none; 
} 

在這種情況下,2是你要隱藏的列的索引。

我得到這個從這個問題的第二個答案:How to hide columns in HTML table?

+0

這是沒有解決方法。表格可能有unknoun數量的字段,還有未知的字段可以隱藏。我只想隱藏帶有一些不可編輯的字段屬性如auto_increment一,因爲我花了很多時間尋找方法來隱藏整個col並且沒有結果,所以我簡單地把disable prop放到相應的input標籤上 – kostya

+0

index 2指的是要隱藏的列號,所以如果你有5列,上面的CSS規則會隱藏整個第三列(0,1,2) –

+0

謝謝。但我能做20列和'隱藏'數字0,4,5,18?下表打開並且有5個cols和col#0#2想隱藏起來,所以我最終得到了規範的解決方案:檢查字段標誌併爲while循環中的_each_對應的th-td設置class hide {display:none}。只是想聽到這樣的話:現在隱藏整個山谷根本不可能。 – kostya

0

我會做這種方式。這將隱藏「第二標題」列或中間列。您也可以使用這樣的變量替換style="display:none"style="<?php echo $nodisplay;?>"然後您可以根據數據關閉或打開列。例如$ nodisplay可以等於display:none;取決於你是否希望顯示列。

<table id="dataGrid"> 
<thead> 
    <tr> 
     <th>First Title</th> 
     <th style="display:none">Second Title</th> 
     <th>Third Title</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
     <th>First Body</th> 
     <th style="display:none">Second Body</th> 
     <th>Third Body</th> 
    <tr> 
</tbody> 
<table>