1

ユーザー入力に基づいて動的にテーブルを作成しようとしていますが、完全に機能していますが、ユーザーの入力に基づいてテーブルを作成することになっているsuperため、の場合super2ループして2つのテーブルを作成します。ただし、それ以外はすべて実行しています。そうすると、CSSをそのように設定したため、テーブルが隣り合って、上下に並んでいないためです。何か案は?

<script type="text/javascript">
function createTable()
{
var num_ports = document.getElementById('ports').value;
var num_super = document.getElementById('super').value;
var num_rows = document.getElementById('rows').value;
var num_cols = document.getElementById('cols').value;
var tbody = '';
var colStart = num_cols / num_super;
var y = 1;
for( var i = 1; i <= num_super; i++){
    var theader = '<div style="margin:0 auto;"><table border="1" style="border:1px solid black; float:left;">\n';
        for(u = 1; u <= num_rows; u++){
          tbody += '<tr>';
            for( var j = 0; j < colStart; j++)
            {
            tbody += '<td style="width:80px; height:70px;">';
            tbody += '<sub style="float:right; position:relative; top:24px; z-index:11;  ">' + y + '</sub>';
            tbody += '</td>';
            y++;
            }
    tbody += '</tr>\n';
}
var tfooter = '</table></div>';
document.getElementById('wrapper').innerHTML = theader + tbody + tfooter;
}
}
</script>

<body>
<form name="tablegen">
<label>Ports: <input type="text" name="ports" id="ports"/></label><br />
<label>Super Columns: <input type="text" name="super" id="super"/></label><br />
<label>Rows: <input type="text" name="rows" id="rows"/></label><br />
<label>Columns: <input type="text" name="cols" id="cols"/></label><br/>
<input name="generate" type="button" value="Create Table!" onclick='createTable();'/>
</form>

<div id="wrapper"></div>
</body>
</html>

どのように見えるべきか

動的テーブル

4

1 に答える 1

3

次の行で、作成したテーブルを現在の繰り返しの新しいテーブルにリセットします。

document.getElementById('wrapper').innerHTML = theader + tbody + tfooter;

次のようなことをしなければなりません:

document.getElementById('wrapper').innerHTML += theader + tbody + tfooter;

あなたのコメントに加えて:

var colStart = num_cols / num_super;

次のようにする必要があります。

var colStart = num_cols * num_super;
于 2013-01-28T15:16:13.477 に答える