将字符串和函数中的变量传递给另一个函数

时间:2016-03-24 06:45:27

标签: javascript string function

我一直致力于一个大型的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];
    }
  }
}

1 个答案:

答案 0 :(得分:0)

使用函数而不是变量。类似的东西:

var changingVariable = 1;
function f () {
    return changingVariable++;
};

function tableConstructor (content) {
    console.log(content);
};

tableConstructor("First: " + f() + " Second: " + f());
// -> First: 1 Second: 2

每次调用时,函数的计算方式都不同。