2011-10-26 7 views
0

を変更し、私はAPIからいくつかの画像を検索し、次のように自分の画像にそれらを変更しています:今jQuery attr()。画像のブロック上のソースおよび拡張

$('img[src="http://www.example.com/dir/images/dir/1.gif"]').attr('src', "http://cdn.example.com/dir/1.gif"); 
$('img[src="http://www.example.com/dir/images/dir/2.gif"]').attr('src', "http://cdn.example.com/dir/2.gif"); 
$('img[src="http://www.example.com/dir/images/dir/3.gif"]').attr('src', "http://cdn.example.com/dir/3.gif"); 
$('img[src="http://www.example.com/dir/images/dir/4.gif"]').attr('src', "http://cdn.example.com/dir/4.gif"); 
$('img[src="http://www.example.com/dir/images/dir/5.gif"]').attr('src', "http://cdn.example.com/dir/5.gif"); 
$('img[src="http://www.example.com/dir/images/dir/6.gif"]').attr('src', "http://cdn.example.com/dir/6.gif"); 
$('img[src="http://www.example.com/dir/images/dir/7.gif"]').attr('src', "http://cdn.example.com/dir/7.gif"); 
$('img[src="http://www.example.com/dir/images/dir/8.gif"]').attr('src', "http://cdn.example.com/dir/8.gif"); 
$('img[src="http://www.example.com/dir/images/dir/9.gif"]').attr('src', "http://cdn.example.com/dir/9.gif"); 
$('img[src="http://www.example.com/dir/images/dir/10.gif"]').attr('src', "http://cdn.example.com/dir/10.gif") 

、私はこれを圧縮あまりにも多くのテキストがありますので、次のようになります。

$('img[src^="http://www.example.com/"]').each(function(index,element){ 
    var $this, src, newSrc; 
    $this = $(this); 
    src = $this.attr('src'); 
    newSrc = src.replace('www.example.com/dir/images/dir', 'cdn.example.com/dir'); 
    $this.attr('src', newSrc); 
}); 

ここで、画像の拡張子を.pngに変更します。だから基本的には、各画像のURLをに置き換え、.gifから.pngまでの拡張子を置き換えたいと思います。

どうすればこの問題を解決できますか?

+0

http://jsfiddle.net/ZHUWD/ソリューション良い。上記のスニペットを囲む残りのコードを含める必要があります。スコープの問題が発生している可能性があります。 – rkw

+0

@rkwありがとうございます。あなたは正しくだった – jQuerybeast

答えて

1
$('img[src^="http://www.example.com/"]').attr('src', function() { 
    return this.src 
       .replace('www.example.com/dir/images/dir', 'cdn.example.com/dir') 
       .replace('.gif', '.png'); 
}); 
+0

それは元の画像を解析する – jQuerybeast

+0

申し訳ありませんが、これは動作しないようにコード内の他の問題がありました。おかげで多くの – jQuerybeast

0
newSrc.replace(".gif",".png"); 

はそれがトリックを行うだろうと思い:)

+0

それは動作していないようです – jQuerybeast

+0

あなたはexcatly何をしましたか? newSrc = newSrc.replace( ".gif"、 ".png"); ? これはうまくいくはずです。 –

2

何について:ダーリンまたはトビアス作品のいずれかにより提供さ

$('img[src^="http://www.example.com/"]').each(function(i, value) { 
    $(this).attr('src', $(this).attr('src').replace('www.example.com/dir/images/dir', 'cdn.example.com/dir').replace('.gif', '.png')); 
}); 
関連する問題