-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 に答える