2013-03-24 84 views
0

隱藏它所在的列。我已創建。隱藏整列

我的表在下面;

<table id="tester" border='1'> 
<tbody> 
    <tr> 
     <td>test1</td> 
     <td>test2</td> 
     <td>test3</td> 
    </tr> 
    <tr> 
     <td>test1</td> 
     <td></td> 
     <td>test3</td> 
    </tr> 
    <tr> 
     <td>test1</td> 
     <td>test2</td> 
     <td>test3</td> 
    </tr> 
    <tr> 
     <td>test1</td> 
     <td>test2</td> 
     <td>test3</td> 
    </tr> 
    <tr> 
     <td>test1</td> 
     <td>test2</td> 
     <td>test3</td> 
    </tr> 
</tbody> 
</table> 

而我試圖讓Jquery工作在下面;

任何幫助,將不勝感激。

+0

迭代的TD S和取他們的文本與$('td')。text()到一個變種,並在它之後檢查變種長度。 > 0 – Bernhard 2013-03-24 14:55:18

+0

也許是$('td:nth-​​child(2)')。style.display =「none」;作品(我不知道) – 2013-03-24 14:56:05

+0

它看起來像jsfiddle樣品有「純js」作爲選擇,一旦我加入jquery,它確實隱藏了一列。還有更多嗎? – 2013-03-24 15:35:10

回答

0

我認爲你在找。

$.each($('table > tbody > tr'), function(){ 
    if($(this).find('td:empty').length>0){ 
    // You can hide 
    $(this).hide(); 

    // Or Remove 
    $(this).remove(); 

    // Or Fadeout and remove 
    $(this).fadeOut(250, function(){$(this).remove();}); 
    } 
}); 
+0

對不起,我錯過了你的問題。您需要在yxour jsfiddle中包含jQuery,並使用我放入我的answear的代碼 – Bernhard 2013-03-24 17:57:22

1

試試這個:

function hidecol2() { 
    var cell = $('#tester > tbody > tr:eq(1) > td:eq(1)'); 
    if (cell.text() == '') cell.parent().parent().children().children(':nth-child(2)').hide; 
}; 
+0

實際上,if(cell.is(':empty')=='')'可能被認爲是更好的風格。 – mrks 2013-03-24 15:02:15

+0

對不起 - 我的錯。試試這個:'if(cell.text()=='')cell.parent()。parent()。children()。children(':nth-​​child(2)')。hide;' – mrks 2013-03-24 15:51:06

0

要隱藏的整列,如果它的細胞之一是空的,用這個:

$.each($('td:empty'), function(){ 
    $('td:nth-child(' + ($(this).index() + 1) + ')').hide(); 
}); 

jsFiddle