43

jQueryを使用して画像のsrc属性を変更しようとしています

jQuery("#imageID").attr('src','http://localhost:8080/images/1/myImage.png' );

上記のコードを使用してsrc属性を変更できますが、これを試してみると:-

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image') );

srcを変更できません。

提供された

alert ( jQuery("#imageBlock").css('background-image') );

戻り値:

url(http:// localhost:8080 / images / 1 / myImage.png

編集#1 私が解決策を受け入れようとしていたちょうどその時。私が言わなければならないのは、ほとんどすべてのソリューションがFFで機能したということです。私は試した:

  • スライス(4、-1);
  • split( "(")[1]> then replace( ")"、 "");

他の人もうまくいくと思います。しかし、IEではどのソリューションも機能していません。理由:FFが返す間:

url(http:// localhost:8080 / images / 1 / myImage.png

IEの戻り値:

url( " http:// localhost:8080 / images / 1 / myImage.png ")

^^ここの引用符に注意してください

さて、srcattrを設定する一般的な方法は何でしょうか。IEかどうかにかかわらず、ブラウザをテストする必要がありますか?

これは動作するコードです。

var src = "";
    if ( jQuery.browser.msie ) {
        src = jQuery("#imageBlock").css('background-image').slice(5,-2);        
    }else{
        src = jQuery("#imageBlock").css('background-image').slice(4,-1);
    }   
    jQuery("#imageID").attr('src', src );

私は本当にそれが好きではありません:x。これ以外の解決策がある場合は、私に知らせてください。そうでない場合は、sliceすぐに解決策を受け入れます。

4

4 に答える 4

35

IMOは、またはsliceよりも適切です。これを試して:substringreplace

jQuery("#imageID").attr(
    'src',
    jQuery("#imageBlock").css('background-image').slice(4,-1)
);

ここでは、との間の文字列をスライスしていurl(ます)。メソッドの詳細な説明については、スライス上のMDCを参照してください。

于 2010-02-02T10:48:41.353 に答える
7

URL部分を抽出する必要があります:

var backgroundImage = $("#imageBlock")
    .css('backgroundImage')
    .replace(/"/g,"")
    .replace(/url\(|\)$/ig, "");
jQuery("#imageID").attr('src', backgroundImage);
于 2010-02-02T10:51:07.497 に答える
2

これは、url()文字列がラップされているためです。たとえば、置換関数を使用して、文字列からそれを取り除く必要があります...

var bgimg = jQuery("#imageBlock").css('background-image').replace('url(', '');
bgimg.replace(')', '');
于 2010-02-02T10:50:08.597 に答える
0

それが機能するためには、部品を剥がしてurl(閉じる必要があります。)

それでurl(http://localhost:8080/images/1/myImage.png)

になります

http://localhost:8080/images/1/myImage.png

これは、部分文字列、正規表現の置換、または任意の方法で行うことができます。

http://www.w3schools.com/jsref/jsref_replace.asp

多分:

jQuery("#imageID").attr('src',jQuery("#imageBlock").css('background-image').replace('url(','').replace(')','') )

于 2010-02-02T10:46:10.983 に答える