javascript - 将一个数组的索引附加到另一个数组的索引
问题描述
我想要做的想法是,假设我有一些 DOM 元素,我想创建一个接受 2 个数组的函数,一个用于元素,另一个用于类名。例如,我如何确保索引 0 处的元素仅具有我在另一个数组的索引 0 处传递的类名。
这是我正在尝试做的事情的视觉效果
function addClassName(arrOfElements, arrOfClassNames) {
// Here is what ive tested
arrOfElements.forEach((el) => {
el.classList.add(arrOfClassNames);
});
}
预期结果
addClassName([el1, el2], ["class-for-el1", "class-for-el2"]
console.log(el1.classList);
// Result: "class-for-el1"
console.log(el2.classList);
// Result: "class-for-el2"
<div class="class-for-el1"></div>
<div class="class-for-el2"></div>
我得到了什么
console.log(el1.classList);
// Result: "class-for-el1", "class-for-el2"
console.log(el2.classList);
// Result: "class-for-el2", "class-for-el2"
<div class="class-for-el1 class-for-el2"></div>
<div class="class-for-el1 class-for-el2"></div>
解决方案
Array.prototype.forEach()
callback 给你两个参数,第一个是元素本身,第二个是它的索引,你可以使用这个属性来实现你想要的
const el1 = document.getElementById('1'),
el2 = document.getElementById('2');
function addClassName(arrOfElements, arrOfClassNames) {
arrOfElements.forEach((el, index) => {
el.classList.add(arrOfClassNames[index]);
});
}
addClassName([el1, el2], ['test', 'test1']);
console.log(`class for el1 - ${el1.className}\n`);
console.log(`class for el2 - ${el2.className}`);
<div id="1"></div>
<div id="2"></div>
推荐阅读
- python - 用于发送邮件的 Python 脚本不返回错误但未收到邮件
- javascript - 在渲染后将图像容器宽度与图像宽度匹配 - React
- java - 由于测试阶段权限被拒绝异常,Maven 构建失败
- c# - 是否有一种算法可以列出文件夹中的所有文件(对于 C#)?
- java - 如何使用 Selenium 和 Java 单击具有 SVG 子项的链接?
- visual-studio-code - 在 VS 代码中在 Julia REPL 中运行 md 文件
- reactjs - 在 React/Nextjs 重定向之前,查找链接是否会将用户重定向到 404 页面
- sympy - 如何用 sympy 中的单个变量替换大表达式
- kotlin - 错误:类型不匹配:推断类型为 FirstFragment 但预期为上下文
- javascript - 如何在 React 的输入字段中的输入文本旁边添加永久标签