帮助!我试图在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列表项。
答案 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++;
});
});
});