изменить img src с помощью JQuery, но оставить информацию о пути без изменений - PullRequest
1 голос
/ 17 марта 2010

Я использую JQuery для переключения изображения таким образом:

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

обратите внимание на относительный путь на новом SRC. К сожалению, это не переносимо, когда я развертываю свое приложение. В моем приложении MVC я использую метод ResolveUrl (), который исправит проблему с маршрутизацией для меня, поэтому он переносим, ​​но теперь мой Src swapper с изображением JQuery не работает должным образом, поскольку теперь он переключает правильно разрешенный путь на прерванный относительный .

<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);

но мне это кажется довольно грубым и неоправданным. У кого-нибудь есть способ получше?

Ответы [ 3 ]

5 голосов
/ 17 марта 2010

вы можете использовать что-то вроде этого:

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

РЕДАКТИРОВАТЬ: лучше код ...:)

2 голосов
/ 17 марта 2010

почему бы просто не использовать переменную для корня приложения, которую вы можете использовать для таких ситуаций.

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

Теперь вы можете легко построить путь к изображению

$("#myImg").attr("src", root + "images/" + fileName);
2 голосов
/ 17 марта 2010

Вы можете использовать resolurl прямо в JavaScript:

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

Это, конечно, предполагает, что вы включили JavaScript прямо в представление. Если у вас есть требование, чтобы этот сценарий находился в отдельном файле сценария из запроса html, то вы можете просто просмотреть, что является файлом javascript ... и просто ссылаться на этот URL в сценарии src :

<script language="javascript" src="<%= Url.Action("MyMethod") %>" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...