-2

以下に示すように、3つの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を返すのはなぜですか?

4

2 に答える 2

3

url('')「ここ」に解決される相対URLです。

入力した生の相対形式ではなく、絶対形式に解決された、指定したURLを取得しています。

于 2012-11-14T09:36:24.157 に答える
0

URLは相対URLであり、絶対に設定されています。

あなたは背景を得るためにこれを書くべきです:

var background = jQuery(this).css('background-image').replace('url(' + location.href,'').replace(')','');
于 2012-11-14T09:37:21.400 に答える