javascript - 如何捕获迭代的数组的索引(Javascript)
问题描述
每次迭代时,我都试图在数组中获取索引,但我只得到该数组的长度。我能怎么做 ?
我在 HTML 代码中创建了其他 div 的外部,每个 div 都包含一张带有小图标的照片以打开模式,因此我希望外部模式的图像源更改并获取该索引的值(在带有小图像的数组中)每次单击图像时。非常感谢您的帮助:) 这是我的代码:
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';
}
解决方案
您可以使用forEach
循环数组。当作为参数传递给时,这可以确保索引的正确值openModal
:
// I suppose this is an HTMLCollection, so need this to transform into an array
[...zoom]
.forEach( (element, index) =>
element.addEventListener('click', () => openModal(index) )
);
function openModal(index)
{
image.src = './img/screenshotSite' + index + '.png';
modal.style.display = 'block';
document.getElementsByTagName('*')[0].style.overflow = 'hidden';
}
推荐阅读
- django - Python Djnago 中的单元测试
- sql - 我如何通过检查并使用大小写选择其值将 3 行相同的主键变成 1 行
- noclassdeffounderror - 部署在 Prod Server 中时的 NoClassDefFoundError Fop 库 - Jdeveloper 11 Oracle ADF
- python - 在不使用 panda 或 csv 模块 PYTHON 的情况下过滤 csv 文件
- swift - 如何在 Swift 中正确传递 GPUImage ExposureAdjustment“曝光”参数?
- flutter - Flutter 文字背景与图
- java - 我们可以为 WhatsApp 贴纸应用程序实现多个内容提供程序吗?
- sql - 需要 mysql 查询来获取学生在单个查询中的 4 列(telegu,maths,social,english)的总分或总和
- python - 使用 WHERE 子句搜索 SQLite3 数据库
- c++ - 接受二维数组,将其乘以整数,并在 C++ 中返回新的二维数组的函数?