无法引用数组中的对象

时间:2015-05-15 00:29:44

标签: javascript html arrays image object

我正在尝试为类编写一个html页面,该页面使用下拉菜单允许用户提取相关信息列表。不幸的是,我无法弄清楚如何让脚本调用数组中的信息。 jsfiddle有完整的html部分,任何帮助都会非常感激。

请记住,我对术语不是很了解,所以要尽可能具体。特别是关于jQuery,我们的老师并没有过多考虑,所以对我来说这是个神秘的事。

另外,我计划在阵列中的对象中添加更多信息,但在我开始工作之前,我不想浪费时间在我可能需要重构的东西上。

http://jsfiddle.net/GamerGorman20/nw8Ln6ha/11/

 var favWebComics = [
    Goblins = {1: "www.goblinscomic.org"},
    GirlGenious = {1: "www.girlgeniousonline.com"},
    GrrlPower = {1: "www.grrlpowercomic.com"}
    ];

    var myFunction = function() {
        var x = document.getElementById("mySelect").value;

        document.getElementById("demo").innerHTML = "You selected: " + x;
        document.getElementById("web").innerHTML = favWebComics.x;
    };

同样,JSFiddle链接有完整的html,目前有一些未使用的项目,但我计划很快添加更多。

我的下一个计划是将图像合并到对象中,以便为每个选择选项加载图片。我该如何管理?

4 个答案:

答案 0 :(得分:1)

[ ]用于数组索引的数组。如果您想要命名属性,则应使用一个对象,该对象使用{ }作为其文字:

var favWebComics = {
    Goblins: "www.goblinscomic.org",
    GirlGenious: "www.girlgeniousonline.com",
    GrrlPower: "www.grrlpowercomic.com"
};

=用于分配变量,而不是在对象中指定属性名称。

然后,您需要了解访问对象的.[]表示法之间的区别。 .x表示查找名为x的属性,[x]表示使用x的值作为属性名称。请参阅Dynamically access object property using variable

所以它应该是:

document.getElementById("web").innerHTML = favWebComics[x];

答案 1 :(得分:0)

你的数组结构不正确,一个对象更适合:

var favWebComics = {
    Goblins : "www.goblinscomic.org",
    GirlGenious : "www.girlgeniousonline.com",
    GrrlPower : "www.grrlpowercomic.com"
    };

然后你应该能够按照你想要的方式访问这些属性

favWebComics.Goblins
favWebComics.GirlGenious
favWebComics.GrrlPower

答案 2 :(得分:0)

从技术上讲,你将数组视为字典。如果您打算这样做但仍希望稍后添加更多信息,则需要在代码上使用括号// Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

{}

对于javascript,只要您的搜索键值存储,请使用大括号var favWebComics = { Goblins: ["www.goblinscomic.org"], GirlGenious: ["www.girlgeniousonline.com"], GrrlPower: ["www.grrlpowercomic.com"] }; 进行调用。这是下面的工作代码。

[]

答案 3 :(得分:0)

我有你的解决方案,显示:

  • 所选择的选择
  • 网址
  • 图片

请检查小提琴。 http://jsfiddle.net/nw8Ln6ha/13/

你的对象是:

var favWebComics = {
        Goblins :  {url:"www.goblinscomic.org", img:"img1"},
        GirlGenious : {url:"www.girlgeniousonline.com", img:"img2"},
        GrrlPower : {url:"www.grrlpowercomic.com", img:"img3"}
        };

您的显示代码:

document.getElementById("demo").innerHTML = "You selected: "+x+" "+ eval("favWebComics[\""+x+"\"].url")+" "+ eval("favWebComics[\""+x+"\"].img");