【问题标题】:How to create a loop by matching variables如何通过匹配变量来创建循环
【发布时间】:2016-01-11 21:13:43
【问题描述】:

我希望循环通过 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]);

【问题讨论】:

    标签: jquery arrays image loops attributes


    【解决方案1】:

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

    $('.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 );
    });
    

    【讨论】:

    • 在我默认使用上面的代码之前尝试 .eq() 代码时,我只是没有将接收图像嵌套在原始图像的循环中。谢谢!完美运行! :)
    【解决方案2】:

    您可以使用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 的解决方案取消它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      相关资源
      最近更新 更多