2012-01-25 14 views
1

写真を拡大するために使用しているjQueryコードを次に示します。画像のサムネイルバージョンを元のサイズのバージョンに置き換えます。jQuery .replace()値(単語)

$('img.photo_share_image').click(function() { 
var new_image = $(this).replace(/thumb_/ig, $(this).attr("src")); 
$(this).animate({width:'100%'},500); 
}) 

元の画像はHTMLタグでページに貼り付けられます。それはhttp://www.example.com/thumb_someimage.jpgから供給されています。私がする必要があるのは、ソースURLからthumb_を削除することです。

私はすでにこのコード

var new_image = $(this).replace(/thumb_/ig, $(this).attr("src")); 

を使用してこれを試してみましたが、それはうまくいきませんでした。助言がありますか?

+0

( '/ thumb/imagename.jpg'、$(this).attr( 'src')); IGが現在のimagenameを含む変数であれば、replace( '/ thumb /' + ig、$(this).attr( 'src')); –

+0

@Jonas m:igは変数ではなく、正規表現のフラグです。 –

+0

Ahh suddentlyそれはすべて意味がありました;) –

答えて

4

使用は、この

var new_image = $(this).attr('src', $(this).attr('src').replace(/thumb_/ig, "")); 

また、あなたはあなたのイメージのための新しいソースを割り当てた後、あなたのアニメーションが右を開始しますので、それは大きな一つだ場合は読み込みが完了するためにあなたのイメージを待つこともできます。したがって、アニメーションは必ずしもそれを待つのではなく、既存のイメージDOM要素で作業します。

+0

私は、そのメソッドが '.replace'メソッドであることを知っていたことを知っていました。私は' replaceWith() 'メソッドで試してみようとしていました。 – uday

+0

replaceWithはjQueryです。ここでは、attr( 'src')で文字列値を取得し、Javascript replace関数を使用します。私たちは正規表現を使用していますが、この場合は少し過度のことです。画像のsrc属性形式を知っているので、単にreplace( 'thumb_'、 '')を使うこともできます。/iと/ gのようなフラグは必要ありません –

1

今、あなたは$(this).replaceを呼び出していますが、$(this)はimg要素のようです。 $(this).attr( "src")でreplace()を呼び出す必要がありますか?