Jquery. Удаление пустых столбцов в таблице

Погодин
На сайте с 04.03.2009
Offline
45
4683

Как удалить с помощью jquery столбец в таблице если все его ячейки пустые?

Вид таблицы:


-----------------------------------------------------------------
| th | th | th | th |
-----------------------------------------------------------------
| td | | td | td |
-----------------------------------------------------------------
| td | | td | td |
-----------------------------------------------------------------
| td | | td | td |
-----------------------------------------------------------------
Ayavryk
На сайте с 11.10.2003
Offline
209
#1


var empty=[];
var tr =$('table tr');
tr.each(function(i){
$(this).children().each(function(j){
empty[j]=empty[j] || $(this).html().length;
})
});
tr.each(function(i){
$(this).children().each(function(j){
if (!empty[j]) $(this).remove();
})
});
По вкусу добавить $.trim, если пробел или пустой тег = пусто
Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
L
На сайте с 05.04.2012
Offline
0
#2

Да, лучше так.

Погодин
На сайте с 04.03.2009
Offline
45
#3

Ayavryk, что-то не работает.

<table border="2">

<tr>
<th>th</th>
<th>th</th>
<th>th</th>
<th>th</th>
</tr>
<tr>
<td>td</td>
<td></td>
<td>td</td>
<td>td</td>
</tr>
<tr>
<td>td</td>
<td></td>
<td>td</td>
<td>td</td>
</tr>
</table>

$(document).ready(function (){


var empty=[];
var tr =$('table tr');
tr.each(function(i){
$(this).children().each(function(j){
empty[j]=empty[j] || $(this).html().length;
})
});
tr.each(function(i){
$(this).children().each(function(j){
if (!empty[j]) $(this).remove();
})
});


});
Ayavryk
На сайте с 11.10.2003
Offline
209
#4

Задача поставлена неверно. У вас в первой строке все ячейки заполнены. Так будет работать без проверки первой строки с th



var i,empty=[];
var tr =$('table tr');
for (i=1;i<tr.length;i++){
$(tr).children().each(function(j){
empty[j]=empty[j] || $(this).html().length;
});
}
for (i=0;i<tr.length;i++){
$(tr).children().each(function(j){
if (!empty[j]) $(this).remove();
});
}
Погодин
На сайте с 04.03.2009
Offline
45
#5

Ayavryk, огромное спасибо!

Дай я тебя расцелую! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий