2

Javascript中的多个数组在这里有一个小问题。

我这样定义数组:var list = [];

在 html 中,<img class="Img" id="2" src="/test.png"/> 我的目标是在“onload”上创建一个像这样的多个数组:

list[2][test.png]

其中 2 是 id 标签,另一个是图像。这样,我以后可以循环并收集属于 list[2] 或 list[3] 的所有照片是否存在该 ID。

但我的问题是,我无法让它工作。我试过这个:

        var images = document.getElementsByClassName("Img");

     for(var i=images.length; i--;) {
        var PhotoId = images[i].getAttribute('id'),  // Id on the photo
            image = images[i].getAttribute('src');               // The images

     }

如果我现在在循环中this.list.push(image),它就像一个魅力,但那是一维的。

如上所述,如何使用此 PhotoId?

4

3 回答 3

3

在单行中,您也可以这样做,检查 list[photoId] 数组是否已经存在,如果是,则将图像推入其中,否则创建一个空数组。

list[photoId] ? list[photoId].push(image) : (list[photoId] = []).push(image);
于 2013-08-13T05:23:28.487 回答
1

尝试这个,

var images = document.getElementsByClassName("Img");

var arr=[];// array
for(var i=images.length; i--;) {
    var PhotoId = images[i].getAttribute('id'),    // Id on the photo
    image = images[i].getAttribute('src');               // The images
    arr[PhotoId]=image;
}
console.log(arr);
于 2013-08-13T05:21:55.413 回答
0

您可以使用

this.list[photoId] = []

然后

this.list[photoId].push(image)

另一方面id,在 DOM 中应该是唯一的。如果要对具有特定属性的元素进行分组,请使用class属性。

于 2013-08-13T05:28:57.713 回答