这是控制台下方的代码.log部分是我的问题。
它在标签中记录出所有 3 类偏移量,如下所示:
<tag id="id1" class="$offset1, $offset2, $offset3">
但我只需要像这样的标签中的 1 类偏移量:
<tag id="id1" class="$offset1">
如何解决此问题?
解释:
向 HTML 元素添加新类
function $addClsls(element, ...newClass) {
return element.classList.add(...newClass);
}
从 HTML 元素中删除类
function $rmClsls(element, ...rmClass) {
return element.classList.remove(...rmClass);
}
选择元素 ID 或类
function $select(element) {
return document.querySelector(element);
}
用于在选定元素中添加或删除类的函数
function $switch(selectEle, eleClass, indexNum) {
switch (indexNum) {
case 0:
$addClsls(selectEle, eleClass);
break;
case 1:
$rmClsls(selectEle, eleClass);
break;
default:
}
}
将 3 个元素 ID 放入数组中
let groupElements = [$select('#id-1'), $select('#id-2'), $select('#id-
3')];
将 3 个元素类放入数组中(无需放入 .
let groupOffsets = ['offset1', 'offset2', 'offset3'];
设置初始化时间值
let addTime = 0;
检查是否为 true 以映射通过组元素和组偏移量并设置延迟时间
if (true) {
groupElements.map( i => {
setTimeout( () => {
$switch(i, groupOffsets.map( x => x ), 0)
console.log(i) // <= logs out results
}, 0 + addTime );
addTime += 1000;
});
}
目标是像这样注销:
<tag id="id-1" class="offset1"> </tag>
<tag id="id-2" class="offset2"> </tag>
<tag id="id-3" class="offset3"> </tag>
但问题是这样的:
<tag id="id-1" class="offset1,offset2,offset3"></tag>
<tag id="id-2" class="offset1,offset2,offset3"></tag>
<tag id="id-3" class="offset1,offset2,offset3"></tag>
好吧,我修好了。所以我要回答我自己的问题。;)
我尝试了另一种方法来执行映射功能,我使用了二维数组而不是 2 个单独的数组
let groupItems = [
[$select('#id-1'), 'offset1'],
[$select('#id-2'), 'offset2'],
[$select('#id-3'), 'offset3']
]
groupitems.map( items => {
setTimeout( () => {
// destruct first dimensional
let [ x ] = [items];
// destruct second dimensional
let [ i, j ] = x;
// first round i = $select('#id-1'); j = 'offset2';
// second and third round so forth
sectionSwitch( i, j, 1);
}, 0 + addTime);
addTime += 1000;
})