声明变量并使用Jquery在其他地方使用它们

时间:2014-10-21 19:26:07

标签: jquery

帮助!我试图在div(.SlideContent)中获取内联声明的背景图像,并让它将该值放在相邻的OL LI中,如下所示:

$( document ).ready(function() {
    $(".banner ul li").each(function() {
        $(this).children('a').each(function() {
            $(this).children('.SlideContent').each(function() {
                var backgroundImage = $(this).css("background-image");
            });
        });
    });
    $(".banner ol.dots").each(function() {
        $(this).children('li.dot').each(function() {
            $(this).css("background-image", backgroundImage);
        });
    });
});

当我尝试这个时,它只是反复填充具有相同图像的OL列表项。

3 个答案:

答案 0 :(得分:0)

超出范围 - Javascript具有功能范围,而不是块范围。只要函数存在,变量才会存在,除非你创建一个闭包。

    $( document ).ready(function() {
      var backgroundImage = '';
        $(".banner ul li").each(function() {
            $(this).children('a').each(function() {
                $(this).children('.SlideContent').each(function() {
                    backgroundImage = $(this).css("background-image");
                });
            });
        });
        $(".banner ol.dots").each(function() {
            $(this).children('li.dot').each(function() {
                $(this).css("background-image", backgroundImage);
            });
        });

});

答案 1 :(得分:0)

$( document ).ready(function() {
    var dots = $(".banner ol.dots li.dot");
    $(".banner ul li a .SlideContent").each(function(i) {
        dots.eq(i).css("backgroundImage", $(this).css("backgroundImage"));
    });
});

答案 2 :(得分:0)

如果你有需要在迭代的每个循环中使用的图像数组,请尝试这样的事情......

var backgroundImage = new Array();
var myIdx = 0;
$( document ).ready(function() {
    $(".banner ul li").each(function() {
        $(this).children('a').each(function() {
            $(this).children('.SlideContent').each(function() {
                backgroundImage[myIdx] = $(this).css("background-image");
                myIdx++;
            });
        });
    });
    myIdx = 0;
    $(".banner ol.dots").each(function() {
        $(this).children('li.dot').each(function() {
            $(this).css("background-image", backgroundImage[myIdx]);
            myIdx++;
        });
    });
});