在JavaScript中访问数组中数组中的元素

在JavaScript中访问数组中数组中的元素,javascript,jquery,html,arrays,for-loop,Javascript,Jquery,Html,Arrays,For Loop,index.html的Pastebin:这可以工作,但是有一些断开的img链接&没有css Zip文件,如果要查看整个项目: 我试图在单击图像时动态更改div的内容。图像有其各自的id。内部数组中的第一个索引在第一个内部数组中有另一个数组索引3。我想在单击图像时使用JQuery将这些链接填充到我的div id=articleLinks中 JavaScript和JQuery: 管阵列*注意:tubeArray中每个元素的第一个索引是ID&新闻文章没有链接到任何特定的内容。仅对tubeArray[0

index.html的Pastebin:这可以工作,但是有一些断开的img链接&没有css

Zip文件,如果要查看整个项目:

我试图在单击图像时动态更改div的内容。图像有其各自的id。内部数组中的第一个索引在第一个内部数组中有另一个数组索引3。我想在单击图像时使用JQuery将这些链接填充到我的div id=articleLinks中

JavaScript和JQuery:

管阵列*注意:tubeArray中每个元素的第一个索引是ID&新闻文章没有链接到任何特定的内容。仅对tubeArray[0]和tubeArray[4]感兴趣

 var tubeArray = [
            ['UQ', -27.495134, 153.013502, "http://www.youtube.com/embed/uZ2SWWDt8Wg",  
                [
                ["example.com", "Brisbane students protest university fee hikes"],
                ["example.com", "Angry protests over UQ student union election"],
                ]
            ],
            ['New York', 40.715520, -74.002036, "http://www.youtube.com/embed/JG0wmXyi-Mw",
                [
                ["example.com" , "NY taxpayers’ risky Wall Street bet: Why the comptroller race matters"]
                ]
            ],
            ['To The Skies', 47.09399, 15.40548, "http://www.youtube.com/embed/tfEjTgUmeWw", 
                [
                ["example.com","Battle for Kobane intensifies as Islamic State uses car bombs, Syrian fighters execute captives"],
                ["example.com","Jihadists take heavy losses in battle for Syria's Kobane"]
                ]
            ],
            ['Fallujah', 33.101509, 44.047308, "http://www.youtube.com/embed/V2EOMzZsTrE", 
                [
                ["example.com","Video captures family cat saving California boy from dog attack"],
                ["example.com","Fines of £20,000 for dogs that chase the postman"]
                ]
            ]
        ];
遍历tubeArray中每个元素的for循环然后将id分配给第一个索引。还有一个调用函数myFunctionId的映像,该函数接受参数this.id

HTML:


任何帮助都将不胜感激。我已经尽可能地简化和删减,以使其可读。

这可能会有所帮助:制作一张像这样的地图

var tubeArray = [
   [                                  // tubeArray[0]
     'id',                            // tubeArray[0][0]
     int,                             // tubeArray[0][1]
     int,                             // tubeArray[0][2]
     [                                // tubeArray[0][3]
        [                             // tubeArray[0][3][0]
           "www.link1.com",           // tubeArray[0][3][0][0]
           "title1"                   // tubeArray[0][3][0][1]
        ],  
        [                             // tubeArray[0][3][1]
            "www.link2.com",          // tubeArray[0][3][1][0]
            "title2"                  // tubeArray[0][3][1][1]
        ]
     ]
   ],
等等。 不知道这是否有帮助,但四维阵列正在打破大脑

[编辑]

。。。因此,选择一种更类似于OO的方法:

var tubeArray = [
    'id' : {                          // tubeArray[id] or tubeArray.id
     'a': int,                        // tubeArray.id.a
     'b': int,                        // tubeArray.id.b
     'entries': [                     // tubeArray.id.entries
        {                             // tubeArray.id.entries[0]
          'url': "www.link1.com",     // tubeArray.id.entries[0].url
          'title': "title1"           
        },  
        {                             // tubeArray.id.entries[1]
            'url': "www.link2.com",   // tubeArray.id.entries[1].url
            'title': "title2"         ...
        }
     ]
  ] ,

首先,您需要在tubeArray上循环,然后深入4层,在该级别的数组上循环。当然,在这些内部数组上循环,得到元素0和1


这有助于我更好地想象它,但我不知道如何解决这个问题。我希望能够在tubeArray中搜索id。您也没有正确连接字符串。想象一下,外部的引用正在消失。这是JavaScript,不是PHP。双引号不能解释代码,我只是用它们在href值的每一侧保留单引号。对不起,我正在试图理解。我应该只使用单引号吗?编辑:我也没有在我的原始字符串中提到索引是4。所以我假设在你们的解中,它是:var I=4,l=tubeArray.length;没关系。你可以用任何一种。我唯一一次使用双引号是在它们里面加单引号,就像我创建HTML字符串时一样。我用PHP做同样的事情。当然,在PHP中使用双引号时,您不必连接单变量或数组元素。您需要给我们您的真实代码,或者下次至少提供相同的原理图。等一下。嗨@PHPglue,谢谢你到目前为止的耐心等待。我的整个索引页都是at-css和图片。基本上,当你按下一个节点,一个youtube视频出现时,第一个断开的图像链接应该是在tubeArray中列出文章的链接。
var tubeArray = [
   [                                  // tubeArray[0]
     'id',                            // tubeArray[0][0]
     int,                             // tubeArray[0][1]
     int,                             // tubeArray[0][2]
     [                                // tubeArray[0][3]
        [                             // tubeArray[0][3][0]
           "www.link1.com",           // tubeArray[0][3][0][0]
           "title1"                   // tubeArray[0][3][0][1]
        ],  
        [                             // tubeArray[0][3][1]
            "www.link2.com",          // tubeArray[0][3][1][0]
            "title2"                  // tubeArray[0][3][1][1]
        ]
     ]
   ],
var tubeArray = [
    'id' : {                          // tubeArray[id] or tubeArray.id
     'a': int,                        // tubeArray.id.a
     'b': int,                        // tubeArray.id.b
     'entries': [                     // tubeArray.id.entries
        {                             // tubeArray.id.entries[0]
          'url': "www.link1.com",     // tubeArray.id.entries[0].url
          'title': "title1"           
        },  
        {                             // tubeArray.id.entries[1]
            'url': "www.link2.com",   // tubeArray.id.entries[1].url
            'title': "title2"         ...
        }
     ]
  ] ,
$.each(tubeArray, function(z, o){
  $.each(o[4], function(i, a){
    $.each(a, function(n, v){
      $('#articleLinks').append("<a href='"+v[0]+"'>"+v[1]+'</a>'); // use CSS to break lines
    });
  });
}