2

データが含まれていないすべての列の並べ替えを無効にする必要があります。DataTable または jQuery を使用して実行しようとしています。複数のテーブルがある場合、それらすべてを反復処理して、各列に対して true または false を返すことができるはずです。結果を取得して列の並べ替えを無効にできるようにします。コードは不完全ですが、これは私がこれまでに持っているものです。

function detectEmptyColumn(index) {

var sStatus = [], status ='';
var colors = ['red','green','blue','yellow','purple','black','cyan','green'];

$('.data-table').eq(index).find('tbody').each(function(i) {
    var self = this;
    $(self).find('tr td').each(function(j) {
        if (j > 0) {
            $(self).find('tr').each(function(k) {
                var $tableCell  = $(this).find('td:visible').eq(j);

                $tableCell.css('border','2px solid '+colors[j]);
                var $innerWrapper = $('.inner-wrapper', $tableCell);
                status = ('a', $innerWrapper).size() > 0;
                sStatus[k] = status;
                if (status) return false;
            });
        }
    });
});

return status;

}


function disableEmptyColumnSorting() {

$('.data-table').each(function(index) {
    var status = detectEmptyColumn(index);
});

}

そして、これは Datatable td がどのように見えるかです:

<td class="reading-level interpTRC_no_interp
    firstCol
     "><div class="inner-wrapper" style="position: relative;">
        <span title="-5" class="sortindex"></span>


        <a href="/test/test123">

            &lt;PC

                <sup>F</sup>
        </a>
</div></td>
4

1 に答える 1

0

空の列を検出するのは、atm を実行するよりもはるかに簡単です。

function isColumnEmpty(index)
{
    return $("tbody td").filter(function(){
        return $(this).index() == index && $.trim($(this).text()).length;
    }).length == 0;        
}

上記の関数は TD でフィルターを使用し、インデックスを検出して渡された列のインデックスと比較し、テキスト コンテンツが 0 より大きいかどうかを確認します。すべての HTML タグが除外されるため、テキストのみが表示されます。

並べ替えを無効にする方法を確認できるように、どのプラグインを使用していますか?

于 2012-12-19T17:36:58.700 に答える