我正在尝试使用类作为每个集合的键来过滤不同样本集的数组,以便js知道从存储的样本位置的变量中提取什么。此刻,如果我记录,例如set1,它只返回最后一个位置。 hasClass方法也没有找到集合类。总而言之,我认为我在逻辑上走的是正确的道路,但我可能在方法和效率方面喋喋不休。我试着寻找解决方案一段时间无济于事,所以我在这里。我很感激帮助。
<div class="swatches set1">Swatches</div>
<div class="swatches set2">Swatches</div>
<div class="swatches set3">Swatches</div>
var swatches = [
"swatch1.png",
"swatch2.png",
"swatch3.png",
"swatch4.png",
"swatch5.png",
"swatch6.png",
"swatch7.png",
"swatch8.png"
];
var set1 = swatches[3,4,2];
var set2 = swatches[5,1,2];
var set3 = swatches[7,1,2];
$('.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]);
}
}
});
答案 0 :(得分:0)
您设置数组的语法无效。
要使用swatches
数组中的元素创建一个数组,它需要看起来像:
var set1 = [swatches[3],swatches[4],swatches[2]];
答案 1 :(得分:0)
要注意两件事:
$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]);
}
}
});
DEMO 。