我一直致力于一个大型的Javascript程序,并通过一个定义内容的数组来动态创建HTML表。我想调用函数看起来像这样:
tableConstructor([
"<p>" + changingVariable + "</p>",
"<p>" + arrayOfData[changingVariable] + "</p>",
secondFunction(changingVariable),
"<button onclick='thirdFunction(" + changingVariable + ")'></button>"
]);
每行都是我正在创建的表中不同列的内容。
问题是在将数据发送到changingVariable
函数之前始终会评估tableConstructor
,这样整个表最终会在每列中一直填充相同的数据。
我需要使用changingVariable
和使用changingVariable
的函数/数组在tableConstructor
函数内部进行评估,而不是之前评估。有谁知道我怎么能让这个工作?我希望它适用于上面给出的四个示例行中的每一行。以下是我迄今为止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];
}
}
}
答案 0 :(得分:0)
使用函数而不是变量。类似的东西:
var changingVariable = 1;
function f () {
return changingVariable++;
};
function tableConstructor (content) {
console.log(content);
};
tableConstructor("First: " + f() + " Second: " + f());
// -> First: 1 Second: 2
每次调用时,函数的计算方式都不同。