如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?
Posted
技术标签:
【中文标题】如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?【英文标题】:How to format a URL.Action() call in JQuery to set a link's href attribute? 【发布时间】:2011-09-15 21:29:45 【问题描述】:我需要将链接的 href 属性设置为指向特定图像,该图像将数据库中的 id 设置为标题。但是,我在尝试格式化字符串以包含获取图像标题属性的调用时遇到问题。
这是基本字符串:
$("#favoriteLink").hover(function()
$(this).attr("href", '<%: Url.Action("FavoriteWallpaper", "Wallpaper", newwallpaperId='+$(this).children.attr("title")+') %>');
);
favoriteLink 是一个 div,而孩子只是一个图像。
【问题讨论】:
【参考方案1】:哦,不,您不能像尝试那样混合服务器端代码和 javascript。这个怎么样:
$('#favoriteLink').hover(function()
var title = $(this).children.attr('title');
$(this).attr('href', function()
var url = '<%= Url.Action("FavoriteWallpaper", "Wallpaper", new wallpaperId= "_TITLE_TO_REPLACE_") %>';
return this.href.replace('_TITLE_TO_REPLACE_', title);
);
);
【讨论】:
我现在有一个新问题。我需要一种方法来检查墙纸是否已被收藏,以便在用户将鼠标悬停在图像上时知道要显示哪个图像,黑色星形或黄色星形。我能想到的最简单的方法是使用字典,图像的 id 作为键,布尔值表示最喜欢的状态。但是,由于图像的 id 被设置为标题,我不知道我将如何获得正确的值。【参考方案2】:您是 URL。Action 呈现在服务器端,而您的 javascript 客户端呈现。当您尝试构建链接时,您将无法访问 dom 元素。
您应该获取在 URL.Action 中呈现的实际 URL 并在客户端构建字符串
【讨论】:
以上是关于如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jQuery datetimepicker 中格式化日期?
如何在 JQuery 中格式化 URL.Action() 调用以设置链接的 href 属性?
如何使用 javascript/jquery 将数字格式化为印度货币(在数据表中)