如何通过匹配变量来创建循环

时间:2015-10-13 23:23:03

标签: jquery arrays image loops attributes

我希望循环使用2个独立的数组来匹配属性。不要为我的数组中的每个图像编写一行代码,不如说“抓住所有图像并将它们复制到另一个数组中”。

var arr = new Array();
$('.single-project .et_pb_slide_image img').each(function(){
     arr.push($(this).attr('src'));
});

var arr2 = new Array();
$('.single-project .et-pb-controllers a img').each(function() {
     arr2.push($(this));
});

arr2[0].attr('src', arr[0]);
arr2[1].attr('src', arr[1]);
arr2[2].attr('src', arr[2]);
arr2[3].attr('src', arr[3]);
arr2[4].attr('src', arr[4]);
arr2[5].attr('src', arr[5]);

2 个答案:

答案 0 :(得分:0)

我认为这只是您需要的代码..

$('.single-project .et_pb_slide_image img').each(function(i){ // i for image index
    var getsrc = $(this).attr('src');
     $('.single-project .et-pb-controllers a img').eq(i).attr('src', getsrc );
});

答案 1 :(得分:0)

您可以使用jQuery.each()替换以下内容:

arr2[0].attr('src', arr[0]);
arr2[1].attr('src', arr[1]);
arr2[2].attr('src', arr[2]);
arr2[3].attr('src', arr[3]);
arr2[4].attr('src', arr[4]);
arr2[5].attr('src', arr[5]);

使用:

$.each( arr2, function( i ) {
    arr2[i].attr('src', arr[i]);
});

或者更好,您可以利用上一个循环更新arr2,如下所示:

var arr2 = new Array();
$('.single-project .et-pb-controllers a img').each(function(i) {
     arr2.push( $(this).attr( 'src', arr[i] ) );
});

而且,如果阵列没有在任何其他地方使用,你可以根据@ Mohamed-Yousef的解决方案取消它们。