2009-08-03 78 views
0

我有一個表格顯示數據從動態內容,我想使表寬度100%時,有6列。和表寬度自動如果少於5色。動態寬度表按列

我用CSS試過,但是當只有兩個cols時,它擴展了兩列到全寬,同時表100%的寬度和看起來尷尬。

有沒有什麼Javascript,jQuery腳本可以得到這個結果?

回答

1

使用jQuery並確保您在表格主體中選擇第一行,以防thead具有不同的佈局。

function setTableWidth(tableId) { 

    var $tbl = $('#'+tableId); 
    var newWidth = $tbl.find('tbody>tr:eq(0)>td').length > 5 ? '100%' : 'auto'; 
    $tbl.width(newWidth) 

} 
1

取決於你如何加載動態內容,有可能是一個更簡單的方法,但這種功能應該做你需要的東西:

function setTableWidth(tableId) { 
    myTable = document.getElementById('tableId'); 
    if (myTable.getElementsByTagName('tr')[0].getElementsByTagName('td').length > 5) 
     myTable.style.width = '100%'; 
    else 
     myTable.style.width = 'auto'; 
} 

不過請注意,它不會,如果任何的工作第一行的單元格有一個colspan。它只需計算第一行中的列數並根據此數據設置寬度。

+0

非常感謝。讓我試試這個。 – 2009-08-03 08:41:35

+0

它最終爲你工作嗎? – Cahlroisse 2009-08-08 16:29:45