我正在尝试编写一个函数,该函数从已定义的数组中调用一个值:
var categories = [];
categories[caller1] = "asasd";
categories[caller2] = "asasd";
categories[caller3] = "asasd";
function getNewItem(caller){
$("#"+categories[caller]).show();
}
所以基本问题是,这不起作用:
function(VARIABLE){
$("#"+ categories[VARIABLE]).show();
}
此代码减少到最低限度以显示问题。
答案 0 :(得分: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() }
答案 1 :(得分:0)
你必须连接:
"#" + categories[caller]
--^--
你也有一个数组,但你应该使用一个对象:
var categories = {};
categories.caller1 = 'asd';
$("#"+ categories.caller1).show();
另外,你有一些严重的语法错误,但尝试上面的代码应该可以工作。