0

我的表格格式是

<table class"tabletop">
    <tr>
        <td>
        <table>
            <tr>
                <td id="mycol1"></td>
                <td id="mycol2"></td>
                <td id="mycol3"></td>
                <td id="mycol4"></td>
            </tr>
        </table>
        </td>
    </tr>
    <tr>
    </tr>
</table>

我必须计算未禁用(或它们的显示不是无)且已禁用的列(具有 id)。假设列 disabled 为 4 而 not disabled 为 2。所以它必须返回 disabled: 4 而 not disabled: 2

td 被他们的 id 禁用。例如

mycol1.style.display="none";
4

3 回答 3

1

工作解决方案试试这个

  <script type = "text/javascript" language = "javascript">

     function getHiddenColumnCount() {
         var tbl = document.getElementById("myTbl");
         var HiddenColumnCount = 0; 
         for(var OuterCounter = 0 ; OuterCounter < tbl.rows.length ; OuterCounter++)
         {
             for(var InnerCounter = 0 ; InnerCounter <                    tbl.rows[OuterCounter].cells.length;InnerCounter++)
            {
                if (tbl.rows[OuterCounter].cells[InnerCounter].style.display == "none")
                HiddenColumnCount++;
            }
         }
         alert("There are " + HiddenColumnCount + " Hidden Columns in Table");
      }
 </script>   
于 2013-05-20T10:54:41.757 回答
0

您可以使用

$('table td:visible').length
于 2013-05-20T10:25:49.947 回答
0

试试这个:fidle

<table border="1" id="myTbl">
        <tr>
            <td class="mycol1">
                1
            </td>
            <td class="mycol2">
                2
            </td>
            <td class="mycol3">
                3
            </td>
            <td class="mycol4">
                4
            </td>
        </tr>
    </table>
    <script>
        function hideColumn(columnClass) {
            var els = document.getElementsByClassName(columnClass);
            for (var i = 0; i < els.length; i++) {
                els[i].style.display = "none";
            }
        }
        hideColumn('mycol1');
        hideColumn('mycol2');

        function getHiddenColumnsCount() {
            var rows = document.getElementById('myTbl').rows;
            var count = 0;
            for (var i = 0; i < rows.length; i++) {
                for (var j = 0; j < rows[i].cells.length; j++) {
                    if (rows[i].cells[j].style.display == "none")
                        count++;
                }
            }
            alert(count);
        }
        getHiddenColumnsCount();
    </script>

首先,您应该使用类而不是 id 来定义列,因为 id 不应重复 & 要定义列,我们必须为列的所有单元格提供相似的 id。

于 2013-05-20T10:39:53.367 回答