我有两个循环,我想循环遍历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 )
})
})
答案 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]);
});
<强>参考强>
答案 1 :(得分:2)
我认为您要做的是根据同一索引中的groupB
属性data-background
元素应用groupA
元素的背景颜色
var $gbs = $(".groupB");
$(".groupA[data-background]").each(function (i) {
$gbs.eq(i).css('background-color', $(this).data('background'))
})