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

итерируем тд s и принести их текст с $ ('td'). text() в var и после этого проверяет, что длина var. > 0 – Bernhard

+0

возможно $ ('td: nth-child (2)'). Style.display = "none"; works (я не знаю) –

+0

кажется, что в примере jsfiddle был выбран «чистый js», и как только я добавил jquery, он скрыл столбец. Есть ли еще больше? –

ответ

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

Извините, я пропустил ваш вопрос. Вам нужно включить jQuery внутри yxour jsfiddle и использовать код, который я разместил в своем ответе – Bernhard

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

+0

Извините - моя вина. Попробуйте это: 'if (cell.text() == '') cell.parent(). Parent(). Children(). Children (': nth-child (2)'). Hide;' – mrks

0

Чтобы скрыть весь столбец, если один из его ячеек пуст, используйте:

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

jsFiddle