51 votes

jQuery: Comment compter les colonnes d'une table?

Avec jQuery, comment déterminer le nombre de colonnes dans un tableau?

 <script>
    alert($('table').columnCount());
</script>

<table>
    <tr>
        <td>spans one column</td>
        <td colspan="2">spans two columns</td>
        <td colspan="3">spans three columns</td>
    <tr>
</table>
 

Le nombre total de colonnes dans cet exemple est 6. Comment pourrais-je déterminer cela à l'aide de jQuery?

56voto

Craig M Points 3011

Voici:

jsFiddle

 $(function() {
    var colCount = 0;
    $('tr:nth-child(1) td').each(function () {
        if ($(this).attr('colspan')) {
            colCount += +$(this).attr('colspan');
        } else {
            colCount++;
        }
    });
});
 

39voto

scrappedcola Points 6199
 $("table").find("tr:first td").length;
 

J'ai édité car je n'avais pas réalisé que vous comptiez le colspan.

Si vous souhaitez utiliser colspan, essayez une boucle entre les td de la première ligne:

 var cols = $("table").find("tr:first td");
var count = 0;
for(var i = 0; i < cols.length; i++)
{
   var colspan = cols.eq(i).attr("colspan");
   if( colspan && colspan > 1)
   {
      count += colspan;
   }else{
      count++;
   }
}
 

35voto

Evan Moran Points 1420

C'est le plus propre à mon avis. Il gère les tables dans les tables. Et est court et simple:

 $("table > tbody").find("> tr:first > td").length
 

1voto

Joe Points 34413

http://jsfiddle.net/WvN9u/

Je fais juste attention à colspan attr

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X