javascript - 两个不同数组的addEventListener - forEach - 代码优化

标签 javascript arrays object html

我刚刚开始学习 JavaScript。我有一个问题需要找到此代码的改进。

是否可以在一个函数 forEach 中包含“document.querySelectorAll”中的两个不同数组或其他方式来优化下面的代码?我知道如何用一个来做到这一点,但是,我不知道如何组合按钮和部分,将一个数组中的第一个元素(按钮[0])传递到另一个数组的第一个元素(部分[0])?我怎样才能让这段代码变得更好、更短、更灵活?

谢谢你的帮助!

function scrollSections(element) {
  window.scrollTo({
    'behavior': 'smooth',
    'left': 0,
    'top': element.offsetTop
  });
}

const btns = document.querySelectorAll('.js-btn');
const sections = document.querySelectorAll('.js-section');

btns[0].addEventListener('click', () => {
  scrollSections(sections[0]);
});

btns[1].addEventListener('click', () => {
  scrollSections(sections[1]);
});

btns[2].addEventListener('click', () => {
  scrollSections(sections[2]);
});

btns[3].addEventListener('click', () => {
  scrollSections(sections[3]);
});

最佳答案

是的,使用 forEach 循环,如下所示:

const btns = document.querySelectorAll('.js-btn');
const sections = document.querySelectorAll('.js-section');
btns.forEach((btn, index) => btn.addEventListener("click", () => scrollSections(sections[index])));

关于javascript - 两个不同数组的addEventListener - forEach - 代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54625242/

相关文章:

c++ - 为什么 sizeof() 我的双数组 [4] 只有 4?

c - 从函数返回一个指向 main 的指针

python - 在 python numpy 中指定二维数组的大小

javascript - 为什么更改参数的副本会更改参数?

javascript - 一次加入多个房间 Socket.io

javascript - 如何检查新的 YouTube 视频何时上传到特定 channel

javascript - 无法初始化行重新排序插件 - rowReordering 不是函数

javascript - 是否可以从外部 js 文件访问 Svelte 商店?

python - 为什么在 Python3.0 中将 cmp 参数从 sort/sorted 中删除?

java - 通过循环创建多个同名对象