如何捕获迭代数组的索引(Javascript)
我试图在数组每次迭代时在数组中获取索引,但我只获取该数组的长度。我该怎么办 我在HTML代码中创建了一个outofother div,其中每个div都包含一张带有小图标的照片,用于打开一个模态,因此我希望每次单击图像时,模态外部的图像源都会发生变化,并获取该索引的值(在包含小图像的数组中)。非常感谢您的帮助:) 这是我的密码:如何捕获迭代数组的索引(Javascript),javascript,arrays,indexing,Javascript,Arrays,Indexing,我试图在数组每次迭代时在数组中获取索引,但我只获取该数组的长度。我该怎么办 我在HTML代码中创建了一个outofother div,其中每个div都包含一张带有小图标的照片,用于打开一个模态,因此我希望每次单击图像时,模态外部的图像源都会发生变化,并获取该索引的值(在包含小图像的数组中)。非常感谢您的帮助:) 这是我的密码: for (var i = 0; i < zoom.length; i++) { zoom[i].addEventListener('click', () =
for (var i = 0; i < zoom.length; i++)
{
zoom[i].addEventListener('click', () =>
{
openModal();
})
}
function openModal()
{
j = i;
image.src = './img/screenshotSite' + j + '.png';
modal.style.display = 'block';
document.getElementsByTagName('*')[0].style.overflow = 'hidden';
}
for(变量i=0;i
{
openModal();
})
}
函数openModal()
{
j=i;
image.src='./img/screenshotSite'+j+'.png';
modal.style.display='block';
document.getElementsByTagName('*')[0].style.overflow='hidden';
}
您可以使用forEach
在数组上循环。当作为参数传递给openmodel
时,这确保了索引的正确值:
//我想这是一个HTMLCollection,所以需要将其转换为数组
[…缩放]
.forEach((元素,索引)=>
元素。addEventListener('单击',()=>OpenModel(索引))
);
函数OpenModel(索引)
{
image.src='./img/screenshotSite'+index+'.png';
modal.style.display='block';
document.getElementsByTagName('*')[0].style.overflow='hidden';
}
只需将(var i=0…与(let i=0…
let
和var
在范围方面存在差异。
这方面的更多信息。首先,我强烈建议您使用let
和const
来声明变量,而不是var
。其次,将I
的值传递给openModal
函数。第三,请同时声明j
,您当前不是declarin它可能会工作,但这是一种糟糕的编码实践。1.您正在循环中调用函数,因此只需更改()并在引用该函数之前加上return和2)使用this
引用正在单击的特定html元素。此外,调用openModel处理程序时,您没有访问for循环中的本地索引…非常感谢您我在您的帮助下通过一些研究了解了如何转换数组,然后您的方法更易于使用,非常感谢。我成功了因为索引从0开始,所以在重命名我的照片时使用了d:)不客气!;)谢谢,注意到了;)