0

これは私の以前の質問にリンクされていますが、少し異なり、まったく新しい質問です...私は配列を持っています。これは、いくつかの素晴らしいPHPの後、次のようになります。

var series = {
    "001":{
        "game":"Portal 2",
        "name":"Portal 2"
    },
    "002":{
        "game":"Minecraft",
        "name":"241"
    },
    "003":{
        "game":"Minecraft",
        "name":"HackMine"
    },
    "004":{
        "game":"Mass Effect 3",
        "name":"Mass Effect 3"
    },
    "005":{
        "game":"League of Legends",
        "name":"League of Legends"
    },
    "006":{
        "game":"Half Life 2",
        "name":"The Hidden: Source"
    },
    "007":{
        "game":"Skyrim",
        "name":"Modded Skyrim"
    }
}

このビットは正常に入力されています...私の質問は、この関数が呼び出されると、常にgamenameが返されることですundefined

function seriesIdOnBlur()
{       

    var id = parseInt(document.getElementById("series_id").value);

    if (series[id] == null)
    {
        var message = "The Series ID you input was invalid";
    }
    else
    {
        var seriesId = series[id];

        var game = seriesId['game'];
        var name = seriesId['name'];
        var message = "You've inputted the id for the game: " + game + " for the series: " + name;
    }

    document.getElementById("series_id_check").innerHTML = message;
}
4

2 に答える 2

1

これ:

series = {
    "001":{
        "game":"Portal 2",
        "name":"Portal 2"
    },
    "002":{
        "game":"Minecraft",
        "name":"241"
    } ... };

はオブジェクトリテラルなので、あなたが述べたように配列の配列ではなくオブジェクトのオブジェクトがあります。

コードを機能させるには、オブジェクトの配列が必要です。

series = [
    {
        "game":"Portal 2",
        "name":"Portal 2"
    },
    {
        "game":"Minecraft",
        "name":"241"
    } ... ];
于 2013-08-07T23:05:08.140 に答える