2013-03-24 85 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