-2

我正在尝试编写一个函数,该函数从定义的数组中调用一个值:

var categories = [];
categories[caller1] = "asasd";
categories[caller2] = "asasd";
categories[caller3] = "asasd";

function getNewItem(caller){
    $("#"+categories[caller]).show();
}

所以基本问题是,这不起作用:

function(VARIABLE){
    $("#"+ categories[VARIABLE]).show();
}

这段代码被缩减到最少以显示问题。

4

2 回答 2

1

我想看看 caller1、caller2 和 caller3 的定义是什么。我假设,因为我确信我们都是,它们是整数。因此,它看起来像这样:

var caller1 = 0
  , caller2 = 1
  , caller3 = 2
;//var

var categories = [];
categories[caller1] = "asasd";
categories[caller2] = "asasd";
categories[caller3] = "asasd";

function getNewItem(caller){ $("#" + categories[caller]).show() }

但我的另一个假设是它们可能是字符串,在这种情况下你做错了。使用对象而不是数组。

var caller1 = 'Gary'
  , caller2 = 'John'
  , caller3 = 'Paul'
;//var

var categories = {};
categories[caller1] = "asasd";
categories[caller2] = "asasd";
categories[caller3] = "asasd";

function getNewItem(caller){ $("#" + categories[caller]).show() }

但这甚至可以扩展到函数和数字:

var caller1 = function(){ return 'blah' }
  , caller2 = 8
  , caller3 = 'aString'
;//var

var categories = {};
categories[caller1] = "asasd";
categories[caller2] = "asasd";
categories[caller3] = "asasd";

function getNewItem(caller){ $("#" + categories[caller]).show() }
于 2013-01-25T08:57:31.613 回答
0

你必须连接:

"#" + categories[caller]
  --^--

你也有一个数组,但你应该使用一个对象:

var categories = {};
categories.caller1 = 'asd';
$("#"+ categories.caller1).show();

另外,您有一些严重的语法错误,但尝试上面的代码应该可以工作。

于 2013-01-25T08:51:52.310 回答