Javascript 为什么for循环会在长度为1的数组中循环?
在下面的程序中,调用两个函数中的一个-根据c值是否匹配任何给定div中的class属性,函数add(w3AddClass)或remove(w3RemoveClass)div项。在这两个函数中都有for循环。我的问题是关于for循环-在这两个函数中,for循环通过一个长度仅为1(即“show”)的数组(arr2)循环。它不应该在较长的数组(arr1)中循环吗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){
变量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只运行一次?明白了。谢谢,伙计!