1

テーブルの空の列を削除する JQUERY の関数はありますか。明確に理解できるように、サンプルのスクリーンショットを添付しました。

MIDテーブルにはマージセルも含まれているため。ここに画像の説明を入力

このスニペットを試してみましたが、何らかの理由でブラウザがショーの読み込みを続け、ブラウザがハングします。

var $theTable = $("table#myTable"),
    lookAt    = ["tr:first-child", "tr:last-child", 
                 "td:first-child", "td:last-child"];

for (var i=0; i<lookAt.length; i++) {
  while ( $.trim($(lookAt[i], $theTable).text()) == "" ) {
    $(lookAt[i], $theTable).remove();
  }
}
4

5 に答える 5

2

I guess that there isn't any jquery function that removes the empty colums, but you can create one using the code bellow:

$('#test tr th').each(function(i) {
    //select all tds in this column
    var tds = $(this).parents('table')
         .find('tr td:nth-child(' + (i + 1) + ')');
    if(tds.is(':empty')) {
        //hide header
        // $(this).remove();
        $(this).hide();
        //hide cells
        //tds.remove();
        tds.hide();
    } 
});

JSFIDDLE

Tip: Using hide() instead of remove() increase the speed of operations because appending and removing elements from HTML are operations which require more memory.

于 2013-06-27T06:24:41.777 に答える
1

jQuery から, remove()を使用できます。ただし、tdまたはtrにIDを付ける必要があります

于 2013-06-27T06:20:13.823 に答える
1

1つ下を試していただけますか、

<table border="1">
    <tr>
        <td>col1</td>
        <td></td>
        <td>col3</td>
    </tr>
    <tr>
        <td>col1</td>
        <td></td>
        <td>col3</td>
    </tr>
</table>

jQuery:

 $('table tr td').each(function (i) {
     alert("To show difference");
     //select all tds in this column
     var tds = $(this).parents('table')
         .find('tr td:nth-child(' + (i + 1) + ')');
     if (tds.is(':empty')) {
         $(this).remove();
         tds.remove();
     }
 });
于 2013-06-27T06:20:56.717 に答える
1

他のオプションを与えるだけです:

$('td:empty').each(function(i){
 $(this).hide().parents('table').find('th:nth-child('+(i+1)+')').hide();
});
于 2014-03-25T16:01:59.017 に答える