0

テーブルのクリーンアップを行う必要がありますが、その方法がわかりません。この場合、既存のテーブル 4 で列の制限に達したときに、新しいテーブルを作成しています。

のスタイルを持つ行の tds を使用してテーブルが作成されるため、クリーンアップが必要ですstyle="DISPLAY: none"

 <table style="border-bottom: #000 1px solid; margin-top: 10px; width: 1000px; float: left; border-right: #000 1px solid">
        <tbody>
            <tr class="tableHeader tbsectionheader">
                <td style="display: none" class="flow_header">
                    ALLERGEN SPECIFIC IGE
                </td>
                <td style="display: none" class="flow_header">
                    CLASS
                </td>
                <td style="display: none" class="flow_header">
                    Carbon dioxide 
                </td>
            </tr>
            <tr>
                <td style="display: none" class="flow_data">
                 </td>
                <td style="display: none" class="flow_data">
                 </td>
                <td style="display: none" class="flow_data">
                 </td>
            </tr>
            <tr>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
                </td>
            </tr>
            <tr>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
               </td>
            </tr>
            <tr>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
                </td>
                <td style="display: none" class="flow_data">
               </td>
            </tr>
        </tbody>
    </table>

マークアップを生成している完全なコードは次のとおりです。根本的な原因で問題を解決する必要があります (すべての行が空の場合はテーブルを作成しないでください)。どうすればよいかわかりません。すべての td が空の場合、行を削除しようとしましたが、インデックスを正しく作成できませんでした。

参考までに、このマークアップはすべて.netを使用してpdfに変換されています

 $(document).ready(function () {
                if (window.opener != null && !window.opener.closed) {
                    var tbl = $get('<%=hfTableId.ClientID%>').value;
                    var tblstring = window.opener.document.getElementById(tbl).value;
                    $("#tblFlowsheet").html(tblstring);
                    $("#divTtableContainer").append($("#tblFlowsheet"));
                    hideEmptyCols();
                    $get('<%=hfFlowsheetTable.ClientID%>').value = $("#divTtableContainer").html();
                    __doPostBack('DoPrint', 'True');
                }
            });

            function hideEmptyCols() {
                var $table = $("#tblFlowsheet")
                var $thead = $('tr.tableHeader', $table).first();
                var isEmpty = new Array();
                $('td', $thead).each(function (i) {
                    var j = i;
                   //select all tds in this column
                    var tds = $(this).parents('table').find('td:nth-child(' + (i + 1) + ')');
                    //check if all the cells in this column are empty
                    if ((tds.length - 1) == tds.filter(':empty').length) {
                        isEmpty[isEmpty.length] = j
                        //tds.remove();
                        //hide header
                        //$(this).remove();
                    }
                });
                for (var x in isEmpty) { $('td:nth-child(' + (isEmpty[x] + 1) + ')').hide(); }
                splitTable($table);
                $('td').each(function () {
                    if ($(this).text() == '') {
                        $(this).html("&nbsp;");
                   }
                });
              }

      function splitTable(table) {
         trs = table.find('tr');
         $('<table>').insertAfter(table);
         var limit = 3;
          if(table.find('tr:first-child>td').length>limit) {
              newTable = table.next('table');
              newTable.attr('style', 'width:1000px;float:left; margin-top: 10px;border-bottom: solid 1px #000; border-right: solid 1px #000;');
              newTable.append('<tbody>');
              trs.each(function () {
                    tr = $(this);
                    clone = tr.clone();
                    clone.html('');
                    newTable.find('tbody').append(clone);
                    lastTr = newTable.find('tr:last-child');
                    lastTr.append($('>:gt('+limit+')',this));
                });
                splitTable(newTable);
            }
        }
4

1 に答える 1

0

あなたが望むものを完全に理解することはできませんが、子供たちにテキストがない行を削除したいと思いました。その場合は、これを使用します:

$('tr').filter(function(){
    var containText = true
    $(this).children().each(function(){
        containText = $(this).text().trim().length == 0;
        return containText;
    })
    return containText;
}).remove();

3 つすべてtdが空の場合、tr

于 2013-06-26T14:42:03.397 に答える