有没有办法将循环与函数名连接起来,比如我有一个表单,它有追加按钮,通过jQuery追加函数添加5个位置div,5次循环位置div。位置div有州城市和邮政编码选择选项,这将被调用jQuery中的ajax是我的code.room是循环名称。
<select data-live-search="true" class="form-control " name="sAState'+room+'" id="sAState'+room+'" onChange="AddLoadCity+room();">
<option value="1">state1</option>
<option value="2">state2</option>
</select>
<div class="col-lg-10 col-md-9 col-sm-10 col-xs-12" id="AddCityDiv'+room+'" ><select data-live-search="true" class="form-control " name="sCity" id="sCity'+room'" onChange="LoadZipCode'+room+'();">
<option value="1">city1</option>
<option value="2">city2</option></select></div>
for(i=0;i;i<5;i++)
{
function AddLoadCity+i()
{
alert($('#sAState'+i+').val());
}
function AddLoadZip+i()
{
alert($('#sCity'+i').val()); }
}
}
我不认为您完全想要创建具有动态名称的多功能。但是如果你真的想,你会这样做:
var functions = [];
for(i=0;i;i<5;i++)
{
functions['AddLoadCity'+i] = function()
{
alert($('#sAState'+i).val());
}
functions['AddLoadZip'+i] = function()
{
alert($('#sCity'+i).val()); }
}
}
然后你可以叫他们
functions.AddLoadZip1()
编辑:
此外,它们也是一个错误
$('#sAState'+i+').val()
即'是一个语法错误。
问题内容: 我在玩PHP中的匿名函数,并意识到它们似乎并没有到达它们之外的变量。有什么办法可以解决这个问题? 例: 这将输出“无”。匿名函数有什么方法可以访问? 问题答案: 是的,使用闭包: 请注意,为了使您能够在匿名函数范围之外修改和检索修改后的值,必须在闭包中使用对其进行引用。
我在PHP中使用匿名函数,发现它们似乎无法访问外部变量。有什么办法可以绕过这个问题吗? 示例: 这将输出“nothing”。匿名函数有没有办法访问变量?
问题内容: 我想做这样的事情: 并得到返回: 问题答案: 您不能那样做(正如Ignacio Vazquez-Abrams已经回答的那样),但是您可以通过类似的方式来做: 唯一的区别是您必须使用关键字参数,否则它将不起作用。 另一种解决方案是访问 传递的变量的属性,这将导致获得函数,类或名称的名称(或其他将定义此名称的名称)。您唯一应该知道的是,默认情况下,它不是变量的名称,而是函数/类/模块的原始
问题内容: 我有一个JavaScript变量,其中包含JavaScript函数的名称。通过使用$ .ajax等加载并放置在页面上,此功能存在于页面上。 谁能告诉我如何调用变量中命名的javascript函数? 该函数的名称位于变量中,因为用于加载页面片段(将其插入到当前页面中)的URL包含要调用的函数的名称。 我愿意就如何实施此解决方案提出其他建议。 问题答案: 我会避免评估。 要解决此问题,您应
问题内容: 基本上,我使用此方便的函数来处理数据库行(请注意PDO和/或其他内容) 使用此功能,我可以简单地执行以下操作: 假设现在我需要将所有内容串联在一起(这只是一个示例)。 我该怎么办?我当时在想像这样的东西,但是它不是很优雅: 问题答案: 你必须使用如在文档中所述: 闭包也可以从父范围继承变量。任何此类变量必须在函数头中声明。从父作用域继承变量与使用全局变量不同。全局变量存在于全局范围内,
将接受数组的函数改变为可变参数函数。 给定一个函数,返回一个闭包,将所有输入收集到一个接受函数的数组中。 const collectInto = fn => (...args) => fn(args); const Pall = collectInto(Promise.all.bind(Promise)); let p1 = Promise.resolve(1); let p2 = Promis