调用一个函数,它的名字就像一个给定的字符串

时间:2013-09-26 20:49:50

标签: javascript jquery

我有一个大小为2的数组:[3,8]。

我想通过以下内容为我拥有的任何ID添加onclick:

而不是:$("#a1").click(function(){ a3(); });,我想做类似的事情:

var a = "a" + arr[0].toString + "();"; // 'a = a3();'

$("#a1").click(function(){ a });

有一个按字符串调用函数的选项吗?

换句话说,我有一个字符串:var func =“abc”;

如何调用func:abc();通过字符串func?

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:4)

您可以使用括号表示法:

function abc() {
   //...
}

var func = 'abc';

window[func](); //calls abc()

答案 1 :(得分:1)

可以使用[]完成此操作。这是一个适用于任何范围的解决方案:

function a1() {alert('a1');}
var context = this;
$("#a1").click(function(){ context[this.id](); });