可以在多个数组中设置名称

Can set name in multiple array

本文关键字:设置 数组      更新时间:2023-09-26

在Javascript中使用多个数组时有一个小问题。

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

在html中,我有<img class="Img" id="2" src="/test.png"/> 我的目标是在"onload"上制作这样的多重数组:

list[2][test.png]

其中2是id标签,另一个是图像。这样,我以后可以做一个循环,收集属于列表[2]或列表[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?

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

list[photoId] ? list[photoId].push(image) : (list[photoId] = []).push(image);

试试这个,

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);

您可以使用

this.list[photoId] = []

然后

this.list[photoId].push(image)

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