2013-11-22 66 views
0

我正在創建一個使用javascript的表格,它將動態輸入單元格值,並使用一個複雜的公式計算單元格寬度,最後以百分比形式顯示。 現在我無法根據我從計算中獲得的寬度在javascript中設置單元格寬度。 從更廣泛的意義上講,每行可能有不同寬度的列,當然每行的列數也不同。 如何破解這個邏輯?!如何改變運行時計算在javascript中的單元格寬度?

它可能看起來像這樣... [請查看該圖像:http://i.stack.imgur.com/lA4q1.jpg

+0

使用單元寬度是不可能實現的。這隻能通過colspan來實現。 – SaidbakR

回答

0

變種TDS = document.getElementsByTagName( 'TD');

for(var i = 0; i < tds.length; i ++) tds [i] .style.width ='2px';

+1

這不允許在同一列中使用可變寬度的單元格(​​)。 – argo49

1

你可以使用一個表元素的每一行,並設置根據您的計算結果使用JavaScript的TD寬度CSS屬性:

<table id="row1"> 
    <tr> 
     <td>a</td> 
     <td>b</td> 
    </tr> 
</table> 
<table id="row2"> 
    <tr> 
     <td>c</td> 
     <td>d</td> 
    </tr> 
</table> 

和Javascript:

var cells = document.getElementsByTagName('td'); 
var calculatedWidths = [25, 100, 100, 25]; 

for(var i = 0; i < cells.length; i++){ 
    cells[i].style.width = calculatedWidths[i] + "px";  
} 

看到這個jsFiddle

+0

px和百分比coz之間的區別是什麼最終對齊只會在發生100%填充時纔會發生 – user3022690

+0

還有一點需要補充的是,你已經提到td只有一行的寬度,但連續的行將會有不同的td widhths ... – user3022690

+0

px是測量單位。百分比基於其父元素的寬度。我不明白你的第二個評論。您可以使用此方法爲任何單元格設置td寬度。 – argo49

相關問題