Javascript 将类添加到for循环中的所有元素
我有一个for循环来完成某项任务。现在在这个for循环中,在上一次迭代中,我需要将Javascript 将类添加到for循环中的所有元素,javascript,Javascript,我有一个for循环来完成某项任务。现在在这个for循环中,在上一次迭代中,我需要将绿色类添加到所有具有类复选标记的元素中 这是我的代码,目前它只将绿色类添加到第一个元素。有没有一种方法可以做到这一点,而不必在电流for循环中使用另一个for循环 const studentLength = 24; for(let i=0; i<studentLength; i++){ //something happens here if(i===studentLength ){ //if l
绿色
类添加到所有具有类复选标记的元素中
这是我的代码,目前它只将绿色
类添加到第一个元素。有没有一种方法可以做到这一点,而不必在电流for循环中使用另一个for循环
const studentLength = 24;
for(let i=0; i<studentLength; i++){
//something happens here
if(i===studentLength ){ //if last iteration
document.querySelectorAll(".checkMarks").classList.add("green-color");
}
}
const studentLength=24;
对于(设i=0;i您需要迭代querySelectorAll
的结果,并将类应用于每个元素:
document.queryselectoral(“.checkMarks”).forEach(e=>e.classList.add(“绿色”);
。绿色{
颜色:绿色;
}
测试
测试2
测试3
测试4
测试5
测试6
TEST7
您需要循环,因为All-in-querySelectorAll返回一个节点列表,但是您也应该在学生身上使用forEach
我使用一个扩展[…]来处理早期的边缘浏览器
students.forEach(student => { /*something happens here */});
[...document.querySelectorAll(".checkMarks")].forEach(chk => chk.classList.add("green-color"));
如果只有一个复选标记,您可以在不使用所有代码的情况下执行document.querySelector(“.checkMarks”).classList.add(“绿色”)
,但vanilla JS不支持像等价的jQuery$(.checkMarks”).addClass(“绿色”)
将就我个人而言,我将使用一个用于
循环(ES6):
const divs=document.queryselectoral(“.checkMarks”);
适用于(各分区中的常数分区){
div.classList.add(“绿色”);
}
。绿色{
颜色:绿色;
}
DIV1
第二组
第三组
第四组
第五组
第六组
DIV7
No,querySelectorAll
返回一个静态节点列表,如果您想为每个节点列表执行操作,则必须遍历该列表中的项目。(如果您不想这样做,那么尽可能使用不同的结构。应用于容器元素的单个类也可以将相同的格式应用于所有。选中标记,您只需要在样式表中创建适当的规则。)@CBroe很酷。这是一个很好的建议。Tanks+1为什么你只在循环的最后一次迭代中才这么做?为什么不在循环后移动它?@Pete Beautiful!!!!简单且即时!!最佳答案:)谢谢+1我假设通过考试的学生得到了课堂检查分数-为什么不在该课程中添加颜色:绿色,或者也在添加检查分数的课程中添加该课程?酷,谢谢!:)我更喜欢@pete的答案(评论部分)。这就是我所做的。我明白了,跟着循环走。是否需要使用第二个.forEach
?如果它不在循环中,这就足够了吗?document.querySelectorAll(“.checkMarks”).classList.add(“绿色”)
No。它不是jQuery。Vanilla querySelector all返回一个节点列表,因此如果只有一个复选标记,则必须循环使用document.querySelector(“.checkMarks”).classList.add(“绿色”)
而不使用allCool,谢谢!)我更喜欢@pete的答案(评论部分)。这也是这个答案所做的。您会注意到我删除了对for
循环的所有引用。