首页 > 解决方案 > 计算表列的属性值

问题描述

对于表中的每个 td,我都有一个 Data 属性,它可以有 4 个值(即“Dag”、“Avond”、“Nacht”和“Vrij”)我想计算列中的值,即存在的频率Dag'在一列中。该表具有可变数量的行和列。

我想为不同的值使用数组来计算每个值的总数。即 Dag[], Avond[], nacht[] 然后为每一列添加 1,如果该值存在于该表格单元格中。

 var D = new Array();
 var A = new Array();
 var N = new Array();
 $('#drawTable > tbody').each(function (i) { //for each row
     $(this).each(function (x) {  //for each cell in this row
         var waarde = $(this).attr('data-total');  //get attibute value
         switch (waarde){  //depending on its value
             case 'Dag':
                 D[x] = D[x] + 1;
                 break;
             case 'Avond':
                 A[x] = A[x] + 1;
                 break;
             case 'Nacht':
                 N[x] = N[x] + 1;
                 break;
         }
     });
});

我的代码不会循环遍历所有行和单元格。i 保持在 4,x 保持在 0。我也觉得我应该用 0 启动我的数组

标签: javascriptjquery

解决方案


回答我自己的问题:

var D = new Array;
var A = new Array;
var N = new Array;

$(function () {
    //Get the number of td in a row
    var l = $('#MyTable tr:first td').length;
    //Fill the array x with zero's
    for (i = 0; i <= l; i++) {
        D[i] = 0;
        A[i] = 0;
        N[i] = 0;
    }

    $('#MyButton').on('click', function () {
        $('#MyTable tr').each(function () {
            $(this).find('td.tdclass').each(function (i) {
                var waarde = $(this).attr('Data-test');
                //alert(waarde + ' i= ' + i);
                switch (waarde) {
                    case 'Dag':
                        D[i]++;
                        break;
                    case 'Avond':
                        A[i]++;
                        break;
                    case 'Nacht':
                        N[i]++;
                        break;
                }
            });
        });
        alert('Dagdiensten: '+D[0] + ' ' + D[1] + ' Avonddiensten: '+ A[0] + ' ' + A[1] + ' Nachtdiensten: ' + N[0] + ' '+ N[1]);
    });
});

推荐阅读