Javascript 将一个函数中的局部变量传递给另一个函数

Javascript 将一个函数中的局部变量传递给另一个函数,javascript,arrays,function,variables,Javascript,Arrays,Function,Variables,我被这个问题难住了。我有以下代码(字符串的形式为:“var1,var2,var3”,someIdArray是包含一些id的数组): 函数myFunction1(变量,字符串) { var myArray=string.split(','); 对于(i=0;i而言,问题在于内部for循环: for (j=0;j<someIdArray[j].length;j++) 对于(j=0;j可以这样尝试: function myFunction1(variable,string) { var m

我被这个问题难住了。我有以下代码(字符串的形式为:“var1,var2,var3”,someIdArray是包含一些id的数组):

函数myFunction1(变量,字符串)
{
var myArray=string.split(',');

对于(i=0;i而言,问题在于内部for循环:

for (j=0;j<someIdArray[j].length;j++)
对于(j=0;j可以这样尝试:

function myFunction1(variable,string)
{
  var myArray = string.split(',');
  for (var i=0;i<myArray.length;i++)
  {
    for (var j=0;j<someIdArray.length;j++)
    {
      document.getElementById(someIdArray[j]).onclick=function()
      {
         var localI = i;
         myFunction2(variable,myArray[localI]);
      }
    }
  }
}
function myFunction2(variable1,variable2)
{
  alert(variable1);
  alert(variable2);
}

在这里,您使用
myArray[i]
中的值创建一个变量,并将其传递给
onClick
函数,而不是将
i
传递给函数。

您在这里更正的代码,这是范围问题, 你做了两件错事, 1.你得到的数组长度是错误的 2.尚未分配数组元素并传递给单击事件

function myFunction1(variable, string) {
    var myArray = string.split(',');
    for (var i = 0; i < myArray.length; i++) {
        var arrEle = myArray[i];
        for (var j = 0; j < someIdArray.length; j++) {
            document.getElementById(someIdArray[j]).onclick = function() {
                myFunction2(variable, arrEle);
            };
        }
    }
}

function myFunction2(variable1, variable2) {
    alert(variable1);
    alert(variable2);
}
函数myFunction1(变量,字符串){
var myArray=string.split(',');
对于(var i=0;i
True…但它仍然无法解决问题…aa这是一个打字错误。对不起!
for (var i=0;i<myArray.length;i++)
{
    for (var j=0;j<someIdArray.length;j++)
    {
      var myArrayIElement = myArray[i];
      document.getElementById(someIdArray[j]).onclick=function()
      {

         myFunction2(variable,myArrayIElement);
      }
    }
}
function myFunction1(variable, string) {
    var myArray = string.split(',');
    for (var i = 0; i < myArray.length; i++) {
        var arrEle = myArray[i];
        for (var j = 0; j < someIdArray.length; j++) {
            document.getElementById(someIdArray[j]).onclick = function() {
                myFunction2(variable, arrEle);
            };
        }
    }
}

function myFunction2(variable1, variable2) {
    alert(variable1);
    alert(variable2);
}