如何编写JS函数为DOM元素数组按同索引匹配添加对应类名
问题原因
- 你调用
forEach遍历DOM元素数组时,没有获取当前元素对应的索引,无法匹配类名数组中同下标的对应类名 classList.add方法支持传入多个类名参数,你直接传入整个类名数组,会把数组内所有类名全部添加到当前遍历的DOM元素上
修改后的实现代码
function addClassName(arrOfElements, arrOfClassNames) { // 遍历同时取当前元素的索引index arrOfElements.forEach((el, index) => { // 边界判断:避免类名数组长度不足时报错 if (index >= arrOfClassNames.length) return // 仅添加当前索引对应的类名 el.classList.add(arrOfClassNames[index]) }) }
代码说明
- 利用
forEach回调的第二个参数获取当前遍历元素的索引,用这个索引取类名数组中对应的类名,实现索引匹配 - 增加了边界判断逻辑,如果DOM元素数组长度大于类名数组长度,超出部分的元素不会执行添加操作,避免报错
内容的提问来源于stack exchange,提问作者justELMO
相关产品推荐
相关产品推荐

