2012-10-25 197 views
0

我想隐藏加载的表格并根据类名称显示其子项td中的一个。 是否可以用CSS来做到这一点?CSS隐藏表格并显示tr

我试图做到这一点,但我认为它从隐藏在显示器中的表继承:none;

+0

标题所说显示隐藏TR,但你明确地询问呈现出TD ... – AlxVallejo

回答

5

您不能显示隐藏父项的子项。

但是,您可以隐藏所有其他<td> -s并只显示您需要的一个。

<style> 
td { display: none } 
td.shown { display: table-cell } 
</style> 

<table> 
    <tr> 
     <td> hidden </td> 
     <td> hidden </td> 
    </tr> 
    <tr> 
     <td class="shown"> shown </td> 
     <td> hidden </td> 
    </tr> 
    <tr> 
     <td> hidden </td> 
     <td> hidden </td> 
    </tr> 
</table> 

DEMO


UPDATE

使用JavaScript

var tds = document.getElementsByTagName("td"); 

for (var i = 0, size = tds.length; i < size; i++) { 
    if (!hasClass(tds[i], "shown")) { 
     tds[i].style.display = "none"; 
    } 
} 

function hasClass(element, cls) { 
    return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; 
} 

DEMO

hasClass()功能

+0

是否有可能通过JavaScript? – user1376366

+0

是的,我已经更新了答案 –

1

不能显示孩子和隐藏 ..这是不可能的。

而是隐藏所有TD的你不希望显示..

4

如果隐藏了表,所有表中的内容将被隐藏。

你想隐藏的所有<tr>秒和每类只显示

tr{ 
    display:none; 
} 
tr.showInit{ 
    display:table-row; 
} 
+0

失去了半个小时,因为我使用'display:block'而不是'display:table-row',你在海洋的另一端有一个感恩的开发者: – microspino