Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops - Fatal编程技术网

Javascript for循环在其最后一个循环中未执行预期行为

Javascript for循环在其最后一个循环中未执行预期行为,javascript,loops,Javascript,Loops,下面的代码位于一个函数中,该函数在每次单击图像时都会触发。每运行一个函数,它都会在特定元素的类名中插入单词“show”,并将其从其他元素中删除 当数组labelsFilterDiv(索引83)的最后一项是其类名中带有单词“show”的项时,函数将输入第二个if语句(if(labelsFilterDiv[q].className.indexOf(filterWord)>-1)),但不输入 elseif语句elseif(q==labelfilterdiv.length-1) 如果您能提供任何反馈以了

下面的代码位于一个函数中,该函数在每次单击图像时都会触发。每运行一个函数,它都会在特定元素的类名中插入单词“show”,并将其从其他元素中删除

当数组labelsFilterDiv(索引83)的最后一项是其类名中带有单词“show”的项时,函数将输入第二个
if语句
if(labelsFilterDiv[q].className.indexOf(filterWord)>-1)
),但不输入
elseif
语句
elseif(q==labelfilterdiv.length-1)

如果您能提供任何反馈以了解原因,我将不胜感激。谢谢

let labelsFilterDiv = document.querySelectorAll(".filterDiv"); // Removed ".div" from the selector 

let labelsShown = [];


for (var i = 0; i < labelsFilterDiv.length; i++) {


  if (labelsFilterDiv[i].className.indexOf("show") > -1) {

            labelsShown.push(element);
            var filterWord = displayedLabeldiv.className.split(" ")[1];

            let labelsWithFilterWordIndividualArray = []

            for (let q = 0; q < labelsFilterDiv.length; q++) {
     

                if (labelsFilterDiv[q].className.indexOf(filterWord) > -1) { // this will be checked 84 times, from 0 to 83. 

                     labelsWithFilterWordIndividualArray.push(labelsFilterDiv[q]);

      
                } else if (q === labelsFilterDiv.length - 1) { 

                       
                     labelsWithFilterWord.push(labelsWithFilterWordIndividualArray);

                  }


          }

    }

}   
let labelsFilterDiv=document.queryselectoral(“.filterDiv”);//已从选择器中删除“.div”
让标签显示=[];
对于(变量i=0;i-1){
所示标签。推动(元件);
var filterWord=displayedLabeldiv.className.split(“”[1];
让带有过滤器的标签或DIVIDUALARRAY=[]
for(设q=0;q-1{//这将被检查84次,从0到83。
LabelsWithFilterOrdinDividualarray.push(labelsFilterDiv[q]);
}else如果(q==LabelFilterDiv.length-1){
带过滤器的标签。推(带过滤器的标签或不带荧光的标签);
}
}
}
}   
解决方案:

for (let q = 0; q < labelsFilterDiv.length; q++) {

     if (labelsFilterDiv[q].className.indexOf(filterWord) > -1) { 
            labelsWithFilterWordIndividualArray.push(labelsFilterDiv[q]); 
     }


      if (q === labelsFilterDiv.length - 1) { 
            labelsWithFilterWord.push(labelsWithFilterWordIndividualArray);
      }

 }
for(设q=0;q-1{
LabelsWithFilterOrdinDividualarray.push(labelsFilterDiv[q]);
}
如果(q==LabelFilterDiv.length-1){
带过滤器的标签。推(带过滤器的标签或不带荧光的标签);
}
}

如果希望
else If
优先于
If
,则交换它们的顺序,使
else If
成为
If
If
成为
else If
。在
If/else If/else
链中只执行一条路径,而不是多条路径“在其类名中包含单词show”是指它可能有一个类似“showfirst”的类(show在-是-类名的一部分)还是指元素有一个名为(确切地说)“show”的类但是也可以有其他类,比如
?我想您可能想使用而不是
className
。如果要在空间上拆分类名,那么实际上不止一个类,classList可以在单个元素上处理多个类。为我们添加一些HTML示例。非常感谢你们三位!你的评论让我找到了正确的答案。我创建了两个不同的if语句不客气。你应该把你自己的问题的答案和答案一起贴出来,否则你的问题就没有意义了,你应该把它删除,因为这是一个问答网站,不是一个讨论论坛。