调用变量中命名的jQuery函数

bob*_*rus 21 javascript jquery function

我有几个jQuery函数 function setOne(); setTwo(); setThree();

以及var number分别为"一","二","三" 的变量.

当数字值为"1"时,如何调用函数"setOne()",当数字值为"2"时,如何调用"setTwo"等等?

非常感谢你提前.任何帮助都会被贬低.

and*_*lrc 41

如果您的函数在全局范围内(在窗口对象上),您可以执行以下操作:

// calls function setOne, setTwo, ... depending on number.
window["set" + number](); 
Run Code Online (Sandbox Code Playgroud)

使用eval将允许您在本地范围内运行函数:

eval("set" + number + "()");
Run Code Online (Sandbox Code Playgroud)

什么时候JavaScript eval() 邪恶?


Fel*_*ing 8

创建name -> function地图:

var funcs = {
    'one': setOne,
    'two': setTwo
    /*...*/
};
Run Code Online (Sandbox Code Playgroud)

然后用以下方法调用该函数:

funcs[number]();
Run Code Online (Sandbox Code Playgroud)


Jos*_*ues 7

如果变量详细说明了JQuery函数的实际名称,并且您希望将该函数应用于DOM元素(如"body"),则可以执行以下操作:

 $('body')['function-name']('params');
Run Code Online (Sandbox Code Playgroud)