Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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循环会在长度为1的数组中循环?_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript 为什么for循环会在长度为1的数组中循环?

Javascript 为什么for循环会在长度为1的数组中循环?,javascript,arrays,for-loop,Javascript,Arrays,For Loop,在下面的程序中,调用两个函数中的一个-根据c值是否匹配任何给定div中的class属性,函数add(w3AddClass)或remove(w3RemoveClass)div项。在这两个函数中都有for循环。我的问题是关于for循环-在这两个函数中,for循环通过一个长度仅为1(即“show”)的数组(arr2)循环。它不应该在较长的数组(arr1)中循环吗 过滤器选择(“汽车”) 函数过滤器选择(c){ 变量x,i; x=document.getElementsByClassName(“fil

在下面的程序中,调用两个函数中的一个-根据c值是否匹配任何给定div中的class属性,函数add(w3AddClass)或remove(w3RemoveClass)div项。在这两个函数中都有for循环。我的问题是关于for循环-在这两个函数中,for循环通过一个长度仅为1(即“show”)的数组(arr2)循环。它不应该在较长的数组(arr1)中循环吗

过滤器选择(“汽车”)
函数过滤器选择(c){
变量x,i;
x=document.getElementsByClassName(“filterDiv”);
如果(c==“全部”)c=“”;
对于(i=0;i-1)
w3AddClass(x[i],“show”);
}
}
函数w3AddClass(元素,**名称**){
变量i,arr1,arr2;
arr1=element.className.split(“”)**
arr2=name.split(“”)**
对于(i=0;i<**arr2.length**;i++){
if(arr1.indexOf(arr2[i])=-1){
element.className=element.className+“”+arr2[i];
}
}
}
函数w3RemoveClass(元素、名称){
//等等。。。
}

全部展示
全部展示
动物
水果
颜色
宝马
橙色
沃尔沃汽车
红色
野马
蓝色
猫
它不应该在较长的数组(arr1)中循环吗

不,没有
arr1
仅用于检查元素是否具有给定的类


例如,
w3AddClass
的第二个参数可以是空格分隔的字符串
w3AddClass(e,“AB c”)
会将
a
b
c
类添加到元素中。

代码中的那些
**
是打字错误还是什么?但是无论如何,我不理解你的问题double*应该使双星号之间的内容加粗,只是为了隔离代码b/c的那部分,这是我试图得到澄清的代码部分..代码是否检查包含类名的任何元素是否与“c”匹配…也有“show”类,如果这些div中有c类,但没有“show”,则添加“show”!我说的对吗?@StanislavMatveyevich不是任何元素,而是给定的元素,并在第二个参数中添加每个类。感谢您的解释-因此for循环在传递的类中循环,在本例中是一个单独的类“show”。。所以如果我理解正确的话-循环对于每个给定的div只运行一次?明白了。谢谢,伙计!