JQueryでimg srcを変更しますが、パス情報はそのままにしますか?

javascript jquery model-view-controller
JQueryでimg srcを変更しますが、パス情報はそのままにしますか?

私はこのように画像srcを切り替えるためにJQueryを使用しています:

$("#myImg").attr("src", "../../new.gif");

新しいsrcの相対パスに注意してください。 残念ながら、これはアプリをデプロイするときに移植できません。 私のMVCアプリでは、ResolveUrl()メソッドを使用してパスの問題を修正し、移植性を高めていますが、正しく解決されたパスを壊れた相対パスに切り替えるため、JQueryイメージのsrcスワッパーは正しく動作しません。

" />

私が欲しいのは、JQueryが実際のファイル名を反転させ、パスをそのままにしておくことです。 私の最初の考えは

// pseudocode javascript jquery on my thought on how to approach this prob
var oldFullPath = $('#myImg").GetTheImgSrc;
var newFileNameWithPathIntact = someRegexAddNewFileNameWithOldPath
$("#myImg").attr("src", newFileNameWithPathIntact);

しかし、それは私にとってかなり粗雑で非JQueryのようです。 誰もがより良い方法を手に入れましたか?

  1  0


ベストアンサー

次のようなものを使用できます。

var oldImage =$("#myImg").attr("src");
var imagePath = oldImage.slice(0, oldImage.lastIndexOf("/")) + "/new.gif";
$("#myImg").attr("src", imagePath );

編集:より良いコード…​ 🙂

5


javascriptでresolveurlを使用できます。

$("#myImg").attr("src", "<%=ResolveUrl("~/Images/new.gif")%>");

もちろん、ビューにjavascriptが含まれていることを前提としています。 このスクリプトがhtmlリクエストとは別のスクリプトファイルに存在する必要があるという要件がある場合は、javascriptファイルであるビューを作成できます…​ スクリプトsrcでそのURLを参照するだけです。

" />
</code></pre>

2


これらのタイプの状況に使用できるアプリのルートに変数を使用しないでください。

var root = "<%=ResolveUrl("~/") %>";

これで、画像パスを簡単に構築できます

$("#myImg").attr("src", root + "images/" + fileName);

2


タイトルとURLをコピーしました