我正在使用JQuery来切换图像src:
$("#myImg").attr("src", "../../new.gif");
注意新src上的相对路径。不幸的是,当我部署我的应用程序时,这不可移植。在我的MVC应用程序中,我使用的是ResolveUrl()方法,它将为我修复路径问题,因此它是可移植的,但现在我的JQuery图像src交换器无法正常工作,因为它现在将正确解析的路径切换为损坏的相对路径
<img id="myImg" src="<%=ResolveUrl("~/Images/transparent.gif")%>" />
我想要的是JQuery只需翻转实际文件名并保持路径不变。我的第一个想法是
// pseudocode javascript jquery on my thought on how to approach this prob
var oldFullPath = $('#myImg").GetTheImgSrc;
var newFileNameWithPathIntact = someRegexAddNewFileNameWithOldPath
$("#myImg").attr("src", newFileNameWithPathIntact);
但这对我来说似乎相当严重且不合适。谁有更好的方法?
答案 0 :(得分:5)
你可以使用这样的东西:
var oldImage =$("#myImg").attr("src");
var imagePath = oldImage.slice(0, oldImage.lastIndexOf("/")) + "/new.gif";
$("#myImg").attr("src", imagePath );
编辑:更好的代码......:)
答案 1 :(得分:2)
您可以在javascript中使用resolveurl:
$("#myImg").attr("src", "<%=ResolveUrl("~/Images/new.gif")%>");
当然,假设您已在视图中包含了javascript。如果您要求此脚本必须存在于来自html请求的单独脚本文件中,那么您可以拥有一个 一个javascript文件的视图...并且只需在脚本中引用该URL SRC:
<script language="javascript" src="<%= Url.Action("MyMethod") %>" />
答案 2 :(得分:2)
为什么不将变量用于可用于这些类型情况的应用程序的根目录。
var root = "<%=ResolveUrl("~/") %>";
现在您可以轻松构建图像路径
$("#myImg").attr("src", root + "images/" + fileName);