将值从一个循环插入另一个循环

时间:2014-11-12 12:33:49

标签: jquery

我有两个循环,我想循环遍历loop1并将其数据属性值插入loop2。使用下面我该怎么做?

谢谢!

$(".groupA[data-background]").each(function(i){
   var backgroundData = $(this).data('background');
})

$(".groupB").each(function(i){
   var newBackground = $(this).attr('style');   ???
})

编辑:我尝试了嵌套循环,但它重复了相同的'backgroundData'。我错过了什么?

$(".swatch[data-background]").each(function(i){
   var backgroundData = $(this).data('background');
   console.log(backgroundData); 
   $('swatch').each(function(i){
      $(this).attr('style', backgroundData )
   })
})

2 个答案:

答案 0 :(得分:4)

您可以使用map将值保存在数组中,并在第二个循环中使用,如:

var backgroundData = $(".groupA[data-background]").map(function(i) {
  return $(this).data('background');
});

$(".groupB").each(function(i) {
  var newBackground = $(this).attr('style', "background:" + backgroundData[i]);
});

<强>参考

.map()

答案 1 :(得分:2)

我认为您要做的是根据同一索引中的groupB属性data-background元素应用groupA元素的背景颜色

var $gbs = $(".groupB");
$(".groupA[data-background]").each(function (i) {
    $gbs.eq(i).css('background-color', $(this).data('background'))
})