为什么jQuery(this).css('background-image')返回浏览器URL?

时间:2012-11-14 09:34:29

标签: javascript jquery html css foreach

我有三个div,如下所示。

<div id="div#product_img_wrapper">
    <div id="product_design1" class="timage"  style="z-index: 20; background-image: url('');"></div>
    <div id="product_design2" class="timage"  style="z-index: 20; background-image: url('');"></div>
    <div id="product_design3" class="timage"  style="z-index: 20; background-image: url('');"></div>
</div>

我使用下面的jquery函数来循环上面的div,如下所示。

jQuery('div#product_img_wrapper div').each(function(){

            var background = jQuery(this).css('background-image').replace('url(','').replace(')','');

            if(background != 'none')
            {
                console.log(jQuery(this));
                console.log(background);
            } 


        });

输出

"http://localhost/project/index.php?option=com_project&controller=project&task=project&method=1"
"http://localhost/project/index.php?option=com_project&controller=project&task=project&method=1"
"http://localhost/project/index.php?option=com_project&controller=project&task=project&method=1"

我要做的是获取每个div的background-image属性。但它返回我的浏览器显示的URL?上面的代码有什么问题?为什么jQuery(this).css('background-image')返回浏览器URL?

2 个答案:

答案 0 :(得分:3)

url('')是一个解析为“here”的相对网址。

您正在获取指定的网址,只是解析为绝对格式,而不是您输入的原始相对格式。

答案 1 :(得分:0)

网址是相对的,并且设置为绝对值。

你应该写这个来获得背景:

var background = jQuery(this).css('background-image').replace('url(' + location.href,'').replace(')','');