Jquery 带条件的故障滤波阵列

Jquery 带条件的故障滤波阵列,jquery,arrays,each,Jquery,Arrays,Each,我试图使用一个类作为每个样本集的键来过滤不同样本集的数组,以便js知道从存储样本位置的变量中提取什么。但现在,如果我记录,例如set1,它只返回最后一个位置。此外,hasClass方法没有找到集合类。总而言之,我认为我在逻辑上走对了道路,但我把一些事情搞混了,也许是在方法和效率方面。我试着寻找解决这个问题的方法有一段时间没有用,所以我来了。我感谢你的帮助 <div class="swatches set1">Swatches</div> <div class="sw

我试图使用一个类作为每个样本集的键来过滤不同样本集的数组,以便js知道从存储样本位置的变量中提取什么。但现在,如果我记录,例如set1,它只返回最后一个位置。此外,hasClass方法没有找到集合类。总而言之,我认为我在逻辑上走对了道路,但我把一些事情搞混了,也许是在方法和效率方面。我试着寻找解决这个问题的方法有一段时间没有用,所以我来了。我感谢你的帮助

<div class="swatches set1">Swatches</div>
<div class="swatches set2">Swatches</div>
<div class="swatches set3">Swatches</div>

集合数组的语法无效

要使用样例数组中的元素创建数组,需要如下所示:

var set1 = [swatches[3],swatches[4],swatches[2]];

要注意两件事:

$this应该是$this,如注释所示 这样做:var set1=[swatches[3],swatches[4],swatches[2]; 以下是工作代码:

var swatches = [
"swatch1.png",
"swatch2.png",
"swatch3.png",
"swatch4.png",
"swatch5.png",
"swatch6.png",
"swatch7.png",
"swatch8.png"
];


var set1 = [swatches[3],swatches[4],swatches[2]];
var set2 = [swatches[5],swatches[1],swatches[2]];
var set3 = [swatches[7],swatches[1],swatches[2]];
console.log(set1);


$('.swatches').each(function(){

    if($(this).hasClass('set1')){
        for(i=0;i<set1.length;i++){
        $(this).append(set1[i]);
        }
    }

    if($(this).hasClass('set2')){
        for(i=0;i<set2.length;i++){
        $(this).append(set2[i]);
        }
    }

    if($(this).hasClass('set3')){
        for(i=0;i<set3.length;i++){
        $(this).append(set3[i]);
        }
    }

});

和。

选择$this而不是$this…将$this的所有实例更新为$this
var swatches = [
"swatch1.png",
"swatch2.png",
"swatch3.png",
"swatch4.png",
"swatch5.png",
"swatch6.png",
"swatch7.png",
"swatch8.png"
];


var set1 = [swatches[3],swatches[4],swatches[2]];
var set2 = [swatches[5],swatches[1],swatches[2]];
var set3 = [swatches[7],swatches[1],swatches[2]];
console.log(set1);


$('.swatches').each(function(){

    if($(this).hasClass('set1')){
        for(i=0;i<set1.length;i++){
        $(this).append(set1[i]);
        }
    }

    if($(this).hasClass('set2')){
        for(i=0;i<set2.length;i++){
        $(this).append(set2[i]);
        }
    }

    if($(this).hasClass('set3')){
        for(i=0;i<set3.length;i++){
        $(this).append(set3[i]);
        }
    }

});