我今天的目标是对嵌套数组中的所有元素应用一个类,并等待1秒的延迟,然后将相同的类应用于下一个嵌套数组的所有元素,并删除应用于前一个嵌套数组的类。目前,我的类被同时应用于所有嵌套数组的所有元素。这是我所能得到的我的代码,因为我不知道如何继续。对于如何使用JavaScript或Jquery解决这一问题,我们将不胜感激。
let sequencing = [["01-01", "02-01", "03-01"],["01-02", "02-02", "03-02"],["01-03", "02-03", "03-03"],["01-04", "02-04", "03-04"]];
// This loop is for outer array
for (let i = 0; i < sequencing.length; i++) {
// console.log(sequencing[i]);
// This loop is for inner-arrays
for (var j = 0; j < sequencing[i].length; j++) {
//console.log(sequencing[j]);
// Accessing each elements of inner-array
$("#"+sequencing[i][j]).addClass("up");
}
}发布于 2022-07-07 16:01:01
要执行所需的操作,可以使用setTimeout()将类的添加延迟为nIteration * 1000毫秒。您还可以使用removeClass()从前一组元素中删除类。
还请注意在下面的示例中使用forEach()使代码略显简洁。
let sequencing = [["01-01", "02-01", "03-01"],["01-02", "02-02", "03-02"],["01-03", "02-03", "03-03"],["01-04", "02-04", "03-04"]];
sequencing.forEach((arr, i) => {
setTimeout(() => {
$('.up').removeClass('up');
arr.forEach(id => $('#' + id).addClass('up'));
}, i * 1000);
});.up {
background-color: #C00;
color: #FFF;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<div id="01-01">01-01</div>
<div id="02-01">02-01</div>
<div id="03-01">03-01</div>
<div id="01-02">01-02</div>
<div id="02-02">02-02</div>
<div id="03-02">03-02</div>
<div id="01-03">01-03</div>
<div id="02-03">02-03</div>
<div id="03-03">03-03</div>
<div id="01-04">01-04</div>
<div id="02-04">02-04</div>
<div id="03-04">03-04</div>
发布于 2022-07-07 16:21:31
请考虑以下几点。
$(function() {
var sequencing = [
["01-01", "02-01", "03-01"],
["01-02", "02-02", "03-02"],
["01-03", "02-03", "03-03"],
["01-04", "02-04", "03-04"]
];
$.each(sequencing, function(i, part) {
setTimeout(function() {
$.each(part, function(j, id) {
$("#" + id).addClass("up")
});
}, i * 1000);
});
});.up {
border: 1px solid #ccc;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="01-01">
01-01
</div>
<div id="02-01">
02-01
</div>
<div id="03-01">
03-01
</div>
<div id="01-02">
01-02
</div>
<div id="02-02">
02-02
</div>
<div id="03-02">
03-02
</div>
<div id="01-03">
01-03
</div>
<div id="02-03">
02-03
</div>
<div id="03-03">
03-03
</div>
<div id="01-04">
01-04
</div>
<div id="02-04">
02-04
</div>
<div id="03-04">
03-04
</div>
这将为每个迭代创建一个唯一的超时。首先,超时是0 (0 * 1000),然后是1000 (1 * 1000),等等.
这将为每个迭代的异步执行创建正确的暂停时间。
https://stackoverflow.com/questions/72900647
复制相似问题