js(jquery)在第二个函数初始化之前将字符串中的变量名称传递给第二个函数

时间:2017-09-22 11:31:14

标签: javascript jquery

我有两个脚本+两个json。

脚本one.html

 var myArr = [];
    myArr .push (
            {myOptStr:'<option value="'+myAjaxVar.valOne+'">'+myAjaxVar.valtwo+'</option>'},  
            {myOptStr:'<option value="'+myAjaxVar.valthree+'">'+myAjaxVar.valfour+'</option>'}, 
    )
 ...
 //load two.js via ajax as dataType: "script",
 ...

 // Call one
 myFun(myArr[0].myOptStr, "myJsonZero");
// Call two
 myFun(myArr[1].myOptStr, "myJsonOne");

脚本two.js

function myFun(myOpts, myJson) {
   $.ajax({
     url: myJson
     ...
    success: function (data) {
       ...
       $.each(data, function (abc, myAjaxVar) {
          myOptrows += myOpts;
       ...

这会在one.html上生成错误,因为myAjaxVar尚不存在。

是否可以将myOptStr作为字符串传递,以便在加载的two.js中将其解释为字符串+ var?

即在two.js中,myOpts被解释为

myOptrows += '<option value="'+myAjaxVar.valOne+'">'+myAjaxVar.valtwo+'</option>'

1 个答案:

答案 0 :(得分:3)

您可以将Runnable属性设置为函数,并将函数作为第一个参数传递给myOptStr而不是字符串。

这是一个例子

myFun