0

我首先是使用数组的新手。我正在从一系列 Img 标签中收集所有 css 背景颜色值,并用它构建一个数组。但是数组中的每个值都是它之前的值的雪球。如何在数组中输出每个值?这是我的代码:

var slideArray = [];
$('.home-rotator-wrap .cycle-slideshow > div img').each(function() {
    slideArray.push($(this).css('background-color'));
    console.log(slideArray);
});

我的控制台向我展示了:

["rgb(255, 0, 0)"]
["rgb(255, 0, 0)", "rgb(0, 255, 0)"]
["rgb(255, 0, 0)", "rgb(0, 255, 0)", "rgb(0, 0, 255)"]
["rgb(255, 0, 0)", "rgb(0, 255, 0)", "rgb(0, 0, 255)", "rgb(0, 0, 0)"] 

我需要四个 img 标签的每一个值,但需要分别返回每一个。

所有这些都是为了能够循环遍历数组的值并在定时动画中返回每个值。用于页面背景,需要配合cycle2滑块的动画。

4

1 回答 1

5

您的代码有效。您只是将console.log语句放在错误的位置,因此它会在每次循环后记录数组的进度。如果您只希望它记录一次,请将其移出循环。


顺便说一句,您不必手动将这些值推送到数组中。您可以map为此使用:

var slideArray = $('.home-rotator-wrap .cycle-slideshow > div img').map(function() {
    return $(this).css('background-color');
}).get();

为了获得更好的性能,您应该考虑使用静态$.css方法,而不是为集合中的每个元素创建一个新对象:

var slideArray = $('.home-rotator-wrap .cycle-slideshow > div img').map(function() {
    return $.css(this, 'background-color');
}).get();

console.log(slideArray);
于 2013-01-25T18:21:14.553 回答