0

[0][1]または[1][1]インデックス値を取得したいいくつかの値が存在する多次元配列があります。配列として未定義になっています。配列の値を直接取得しようとすると、値を取得できます。

これは私が達成したいことです

選択したドロップダウンメニューがありました。選択したインデックスに従って、配列ボックスからメッセージを取得する必要があります。たとえば、インデックスが1の場合、[1][1]配列インデックス値を取得する必要があります。ゼロの場合は、配列インデックス値[0][1] を取得する必要があります。

これは私がやったフィドルです。http://jsfiddle.net/hTQZ9/

4

3 に答える 3

1

この更新を参照してください:http://jsfiddle.net/hTQZ9/1/

var MessagesObj = {
    testName: []
}
MessagesObj["testName"].push(["testName_custom_message_Label1val","Custom message for label 1"]);
MessagesObj["testName"].push(["testName_custom_message_Label2val","Custom message for label 2"]);

alert(MessagesObj["testName"][1][1]);

var classChk       = $(".customCheckEnabled").get(0);
var getClassindex  = classChk.selectedIndex;
var getVarName     = classChk.id
var getCstMsgName  = MessagesObj[getVarName];
alert(getCstMsgName);

var getMessage     = getCstMsgName[getClassindex][1];
alert(getMessage);
于 2012-05-24T12:01:24.753 に答える
0

getCstMsgNameは文字列であり、配列ではありません。

1つの方法はこれを使用することです

$(document).ready(function () {

    var testName_MessagesArray = new Array();
    var cntr = 0;
    testName_MessagesArray[cntr] = new Array("testName_custom_message_Label1val", "Custom message for label 1");
    cntr++;
    testName_MessagesArray[cntr] = new Array("testName_custom_message_Label2val", "Custom message for label 2");
    cntr++;
    alert(testName_MessagesArray[1][1]);

    var classChk = $(".customCheckEnabled");
    alert(classChk);

    this.testName = testName_MessagesArray; //<-- set this with the name
    var getClassindex = classChk.attr("selectedIndex");
    alert(getClassindex);
    var getVarName = classChk.attr("id");
    alert(getVarName);
    var getCstMsgName = this[getVarName]; //<-- reference it from this
    alert(getCstMsgName);
    var getMessage = getCstMsgName[getClassindex][1];
    alert(getMessage);


});

testName_MessagesArrayがグローバルスコープ内にある場合は、window["testName_MessagesArray"]それを参照するために行うことができます。現在の例はローカルスコープであるため、機能しません。

于 2012-05-24T11:59:06.860 に答える
0

er、cntrsの代わりに配列リテラルを実際に使用する必要があります。

var testName_MessagesArray = [
    ["testName_custom_message_Label1val", "Custom message for label 1"],
    ["testName_custom_message_Label2val", "Custom message for label 2"]
];

次に、そこから値を取得する場合は、を使用しますtestName_MessagesArray[x][y]

あなたがしていたこと:

var classChk=$(".customCheckEnabled"); 
// this is a jQuery element, alerted as [object Object]

var getClassindex=classChk.attr("selectedIndex"); 
// this is 0 or 1

var getVarName=classChk.attr("id"); 
// this will be the id of the first selected element, a string

var getCstMsgName=getVarName+"_MessagesArray".toString();
// this will create a string, from the "getVarName"-string and your string-literal-toString

var getMessage=getCstMsgName[getClassindex][1];
// as "getCstMsgName" is a string - not the twodimensional array, 
// getCstMsgName[getClassindex] returns the character at the selected index (as a string)
// and getCstMsgName[getClassindex][1] results in the second character of the one-character-string - undefined
于 2012-05-24T12:07:48.760 に答える