2010-12-28 17 views
5

silin: Burada jQuery Ben bir masa ve işaretlemeyi değiştiremez tablo sütunu

<table> 
    <thead> 
     <tr> 
      <th> 
       blablabla 
      </th> 
      <th> 
       blablabla 
      </th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td> 
       efgd 
      </td> 
      <td> 
       efghdh 
      </td> 
     </tr> 
    </tbody> 
</table> 

bir sütun silmek gerekir benim fonksiyonudur. Bu cep tıkladığında denir:

function (menuItem, menu) { 
    var colnum = $(this).prevAll("td").length; 

    $(this).closest('table').find('thead tr th:eq('+colnum+')').remove(); 
    $(this).closest("table").find('tbody tr td:eq('+colnum+')').remove();  
    return; 
} 

Ama başka bir şey, ben silmek istedim sütunu siler. Nerede yanlışım?

+0

, daha spec verin tüpte. Hepsini mi yoksa sadece belirli sütunları mı silmek istiyorsun? –

cevap

12

Bir sütun hemen hemen yalnızca hücrelerdir, bu nedenle tüm satırları el ile geçirmeniz ve hücreyi dizine göre silmeniz gerekir.

Bu 3 sütun kaldırmak için size iyi bir başlangıç ​​noktası vermelidir:

$("tr").each(function() { 
    $(this).filter("td:eq(2)").remove(); 
}); 
+0

Bu oldukça işe yaramıyor. 'filter()' 'tr' öğelerine değil,' td' öğelerine uygulanır, bu nedenle hiçbir şey kaldırılmaz. Bunun yerine, $ (this) .children(). Filter() 'veya daha iyi' $ (this) .find() 'yapmalısınız. – Mike

7

Bu işleyicisi için .delegate() kullanır ve tıklandığı hücre dizini almak için cellIndex kullanarak daha doğal bir yaklaşım ve cells Her satırdan hücreyi çekmek için.

Örnek:http://jsfiddle.net/zZDKg/1/

$('table').delegate('td,th', 'click', function() { 
    var index = this.cellIndex; 
    $(this).closest('table').find('tr').each(function() { 
     this.removeChild(this.cells[ index ]); 
    }); 
}); 
5

Bu benim için çalışıyor:

$(".tableClassName tbody tr").each(function() { 
    $(this).find("td:eq(3)").remove(); 
}); 
0

her satırın ilk sütunu çıkarın. Şimdi yeni tablo 9 olacak

$('#table th:nth-child(1),#table td:nth-child(1)').remove(); 

: Statik html varsa

$('.mytable').find("tr td:nth-child(1)").each(function(){ 
    $(this).remove() 
}); 
1

ardından aşağıdaki kullanarak başlığıyla birlikte ilk sütunu kaldırmak, (10 sütunlu tablo düşünün) sütunlar, şimdi numarasını kullanarak herhangi bir sütun kaldırabilirsiniz: Ben burada niyeti göremiyorum

$('#table th:nth-child(7),#table td:nth-child(7)').remove(); 
İlgili konular