2017-07-27 20 views
2

我正在根據特定條件獲取表格行。這是我的代碼結構僅基於CSS中的下一個類名稱從表格行中隱藏特定的​​或jquery

<tr start="7" row="1" class="tableinsideth trmain"> 
    <td>&nbsp;</td> 
    </tr> 
    <tr start="7" row="1" class="tableinsideth trmain"> 
    <td>&nbsp;</td>        
    <td class="tdclass dateclass esl" >Available</td> 
    </tr> 

我想刪除只<td>這僅僅是上述esl類或其他方式,刪除第一個TD的時候,我們已經連續超過10個TD。嘗試~也在CSS中,但沒有得到任何成功。任何幫助將不勝感激。

+0

我需要刪除NBSP;第二個tr的td,因爲tr中有超過1個td – noobcode

+0

注意:'start'和'row'是'tr'元素的無效屬性。如果你想存儲元素的數據,使用[data-'前綴](https://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the - 數據 - * - 屬性)。 –

+0

只是要清楚,CSS不能*刪除*元素,它只能隱藏它們。 –

回答

5

您可以使用:first-child隱藏第一tdtr

然後使用:only-child來確保td沒有其他兄弟顯示。

td:first-child { 
 
    display: none; 
 
} 
 

 
td:only-child { 
 
    display: table-cell; 
 
}
<table> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbspTEST;</td> 
 
    </tr> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;TEST2</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    </tr> 
 
</table>

+0

非常好!我從來沒有聽說過::獨生子女。 –

+0

@ T.J。Crowder我最近才發現它:) – sol

+0

但它的支持基本上是通用的。涼! –

2

你可以做你想要用什麼CSS只

  • 首先,你躲使用:first-child
  • 然後告訴你使用:last-child最後的細胞,這是需要在一個獨特的電池的情況下,所有第一個細胞,其你要顯示

見代碼片段:

table td:first-child { 
 
display:none; 
 
} 
 

 
table td:last-child{ 
 
display:table-cell; 
 
}
<table border=1> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    </tr> 
 
    
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    </tr> 
 

 
</table>

0

嘗試這樣

$('.esl').prev().hide(); 
+0

你*可以*用jQuery做到這一點,但沒有什麼好的理由。 –

+0

OP標籤jquery這就是爲什麼我在jQuery中做到這一點:) –

0

可以使用prev描述here獲得前一個同級的jQuery。所以,你可以做這樣的事情:

$document.ready(function() {  
    $.("es1").prev().remove() 
}); 
+0

你*可以*用jQuery做到這一點,但沒有什麼好的理由。 –

-1

嘗試:

$(document).ready(function(){ 
    $('table .tableinsideth').each(function() { 
     if ($(this).find('td').length > 1){ 
      $(this).find('td').first().remove(); 
     } 
    }); 
}); 
+1

你應該解釋你的代碼,以及它爲什麼有助於回答這個問題。 – Markus

+0

對不起,下次我會做你的反饋 – SoulMaster

0

您可以將CSS或JS使用CSS它像這對JS取決於你使用的是什麼JS框架。祝你好運!

table td:only-of-type { 
 
display:table-cell !important; 
 
} 
 
table td{ 
 
display:none; 
 
} 
 

 
.tdclass.dateclass.esl{ 
 
    display:table-cell !important; 
 
}
<table border=1> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    </tr> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    <td class="tdclass dateclass esl">Available</td> 
 
    </tr> 
 
    <tr start="7" row="1" class="tableinsideth trmain"> 
 
    <td>&nbsp;</td> 
 
    </tr> 
 

 
</table>

相關問題