Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将类添加到for循环中的所有元素_Javascript - Fatal编程技术网

Javascript 将类添加到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循环中,在上一次迭代中,我需要将
绿色
类添加到所有具有类
复选标记的元素中

这是我的代码,目前它只将
绿色
类添加到第一个元素。有没有一种方法可以做到这一点,而不必在电流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
循环的所有引用。