0

我正在尝试使用 jQuery 来动态更新 div 的背景,如果它在服务器上发生了变化(即,页面可以保持打开状态并且背景图像会刷新)。

我有以下代码适用于#current div 内容,但不适用于#banner 的背景图像。

setInterval(function(){
    $.get('/index.php',function(data){
        $('#current').empty().append($('#current_refresh',data));
        var banner_bg = $(data).filter( $('#banner').css('background-image') );
        $('#banner').css('backgroundImage',banner_bg);
    });
}, 5000);
4

1 回答 1

2

问题是这一行:

$(data).filter( $('#banner').css('background-image') );

jQuery 的过滤器适用于元素,但它试图从css().

要从元素的内联样式中获取背景图像,您需要执行以下操作:

$.get('/index.php',function(data){
    $('#current').empty().append($('#current_refresh',data));

    var banner_bg = $('<div />', {html:data}).find('#banner').css('background-image');

    $('#banner').css('background-image', banner_bg);

});

这当然只适用于看起来像这样的元素:

<div id="banner" style="background-image: url('image.jpg')"></div>

并且没有从样式表等中获取样式?

于 2013-06-05T03:01:07.197 回答