1

私はHTMLに非常に慣れていないので、この質問が非常に簡単な場合は申し訳ありません。これまでに行ったことでは、ユーザーからいくつかの入力を受け取り、それらに対していくつかの計算を行い(headタグで宣言したjavascript関数を使用して)、答えを吐き出します。計算をしている間、私は値を配列に格納し、ユーザーがこれらの配列に何があるかを確認できるようにしたいと思います。これらの値をテーブルに表示したいと思います。しかし、配列の値をテーブルの表示に配置する方法がわかりません。これがテーブルの仕組みであることに気づいています。

<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>

ただし、「行1、セル1」などの値を入れたいと思います。私が理解していることから、HTMLコードの本文部分でテーブルタグを使用する必要があります(間違っている場合は教えてください)。 )だから私はこれを行う方法がわかりません。関数で値を計算しながらテーブルを作成することはできませんよね?関数に値を作成して保存した配列にアクセスするにはどうすればよいですか?どんな助けでも大歓迎です!

4

2 に答える 2

1

実際には、関数を使用してテーブルを作成できますが、簡単にするために、すでにそこにあるテーブルを使用してみましょう。

動作中のJSFIDDLEデモ:http://jsfiddle.net/KEjpe/

JS:

var myjsonobject = { 
                    0: { 0: "row 1 cell 1", 1 : "row 1 cell 2"},
                    1: { 0: "row 2 cell 1", 1 : "row 2 cell 2"} 
                   }

var table = document.getElementsByTagName("table")[0];

var trs = table.getElementsByTagName("tr");

for(i=0;i<trs.length;i++)
{
   var tds = trs[i].getElementsByTagName("td");

   for(j=0;j<tds.length;j++)
   {
      tds[j].innerHTML = myjsonobject[i][j]
   }
}

HTML:

<table border="1">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
于 2013-01-07T03:02:48.423 に答える
1

まず、テーブルにtrとtdを追加する関数が必要です。

function addContentTo(table, myArr) {
    var frag = document.createDocumentFragment();
    var tr = document.createElement('tr');

    for (var col in myArr) {
        var td = document.createElement('td');
        td.innetHTML = col;
        tr.appendChild(td);
    }

    frag.appendChild(tr);
    table.appendChild(frag);
}

これで、lines配列をラムして、テーブルにデータを入力できます。

var table = document.getElementById('mytable');
for(var line in myArray) {
    addContentTo(table, line);
}

私はあなたの配列がこのようなものだと思います:

myArray = [
    ['row 1, cell 1', 'row 1, cell 2'],
    ['row 2, cell 1', 'row 2, cell 2']
];

次に、テーブルは動的に構築されますが、私のコードの場合、テーブルのIDは「mytable」である必要があります。

<table id="mytable"></table>

それはすべての人々です。

于 2013-01-07T03:09:37.617 に答える