2012-05-03 33 views
0

少し問題に遭遇しましたが、それを理解できません。いくつかの画像のロードとライトボックスを処理するためにjQueryをページ上で使用しています。フィーチャセットの一部では、アンカータグhrefの一部を別のリソースに向けて置き換える必要があります。JavaScript .replace()のURLの一部が動作しない

画像にはさまざまな量の画像がありますので、jQueryの.each()メソッドを使用してそれらを取得し、URLの一部を置き換えて、順序の後に1つずつフェードします。フェーディングは正しく動作しますが、JavaScriptの.replace()は有効になりません(ただし、変数に変換してログに記録しても正しい結果が表示されます)。そして、機能がフェードインして.replaceにチェーンされても、実行されません。

は値が要素に返されていないように感じます。私は何が欠けていますか?

ご協力いただきありがとうございます。

HTML:

<a class="test" href="aresourcewithextension_b.jpg"> 
    <img src="aresourcewithextension_a.jpg" /> 
</a> 

はJavaScript:

$('.test').each(function(i){ 
    $(this).attr('href').replace('_b.jpg','_c.jpg').delay(100*i).animate({opacity:1},200); 
}); 

答えて

1

あなたは置き換えHREFを設定する必要があります。 .replace自体は元の文字列を更新しません。

this.href = this.href.replace('_b.jpg','_c.jpg'); 
+0

ああ、そう思っています。あなたは勝つ! – technopeasant

0

あなたは、文字列でもJavaScriptで、不変であることを覚えておく必要があり、以下のように試してみてください。これを試してください:

$(".test").each(function(i){ 
    $(this).attr("href", $(this).attr("href").replace("_b.jpg", "_c.jpg")); 
    $(this).delay(100 * i).animate({opacity:1}, 200); 
}); 
関連する問題