私は大きなJavascriptプログラムを作成しており、テーブルを満たすためにコンテンツを定義する配列を取ってHTMLテーブルを動的に作成する関数を作っています。関数を次のように呼び出すといいと思います。文字列と関数内の変数を別の関数に渡す
tableConstructor([
"<p>" + changingVariable + "</p>",
"<p>" + arrayOfData[changingVariable] + "</p>",
secondFunction(changingVariable),
"<button onclick='thirdFunction(" + changingVariable + ")'></button>"
]);
それぞれの行は、作成しているテーブルの異なる列の内容になっています。
tableConstructor
関数にデータが送信される前に常にchangingVariable
が評価されるため、テーブル全体が同じデータで各列の下にいっぱいになるという問題があります。
changingVariable
とchangingVariable
を使用する関数/配列は、tableConstructor
関数の内部ではなく、以前は評価されていないと評価する必要があります。どのように私はこれを動作させることができるか誰も知っていますか?上記の4つの例の行のそれぞれについて動作させたいと思います。ここでは、これまでにtableConstructor
関数自体のために何を得ているのですか:
function tableConstructor (content) {
tableRows = [];
tableDowns = [];
for (i in arrayOfData) {
tableRows[i] = document.createElement("tr");
containerElement.appendChild(tableRows[i]);
for (changingVariable in content) {
tableDowns[tableDowns.length] = document.createElement("td");
tableRows[i].appendChild(tableDowns[tableDowns.length - 1]);
tableDowns[i * parseInt(content.length) + parseInt(changingVariable)].innerHTML = content[changingVariable];
}
}
}
配列の代わりに、データをオンザフライで生成する関数をパラメータとして渡すことはできませんか? – skypjack
これはどのように動作するかの例を教えてください。 – Nalax