我有两个脚本+两个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");
脚本二.js
function myFun(myOpts, myJson) {
$.ajax({
url: myJson
...
success: function (data) {
...
$.each(data, function (abc, myAjaxVar) {
myOptrows += myOpts;
...
这会在 one.html 上生成错误,因为 myAjaxVar
尚不存在。
是否可以将myOptStr
作为字符串传递,以便在加载的two.js中将其解释为string+var?
即在two.js中,myOpts
被解释为
myOptrows += '<option value="'+myAjaxVar.valOne+'">'+myAjaxVar.valtwo+'</option>'
最佳答案
您可以将 myOptStr
属性设置为函数,并将函数作为第一个参数传递给 myFun
,而不是字符串。
这是一个例子
var myArr = [];
myArr .push (
{
myOptStr : function(myAjaxVar){
return '<option value="'+myAjaxVar.valOne+'">'+myAjaxVar.valtwo+'</option>';
}
}
)
...
myFun(myArr[0].myOptStr, "myJsonZero");
...
function myFun(myOpts, myJson) {
...
$.each(data, function (abc, myAjaxVar) {
myOptrows += myOpts(myAjaxVar);
...
}
}
关于javascript - js ( jquery ) 在初始化第二个函数之前将字符串中的变量名称传递给第二个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46363764/