Javascript 如何更新网页中的多个链接
我正在使用MVC webgrid,导航页面的一个工件是我有很多URL,看起来像:Javascript 如何更新网页中的多个链接,javascript,asp.net-mvc,razor,webgrid,Javascript,Asp.net Mvc,Razor,Webgrid,我正在使用MVC webgrid,导航页面的一个工件是我有很多URL,看起来像: <a href="/SyntheticData/MasterDetail?modelIn=Exact.Web.ViewModel.MasterDetailViewModel&entrystate=Templates&selectedrow=5">►</a> 我需要将entrystate=Templates更改为entrystate=Paging 有没有j
<a href="/SyntheticData/MasterDetail?modelIn=Exact.Web.ViewModel.MasterDetailViewModel&entrystate=Templates&selectedrow=5">►</a>
我需要将entrystate=Templates更改为entrystate=Paging
有没有jscript方法可以对简单脚本中的所有链接进行此更改
链接是由webgrid组件生成的,我无权访问它。它们的形成似乎是因为网格获取调用操作的url并将其用作基本url(entrystate和modelIn是调用操作的RouteValue)。我无法控制这一切。我唯一的选择似乎是在创建html之后修复它。我被这个蹩脚的网格困住了。我本来希望有更简单的东西,但看起来它会起作用:
var links = $("a[href]");
for (var i = 0; i < links.length; i++) {
var link = links[i];
var urlin = link.attributes.getNamedItem("href");
var urlout = urlin.value.replace("entrystate=Templates", "entrystate=Paging");
var urlout2 = urlout.replace("entrystate=Designer", "entrystate=Paging");
link.setAttribute("href", urlout2);
}
试试这个:
$('a[href~="/SyntheticData/MasterDetail?"]').each(function() {
$(this).attr('href', $(this).attr('href').replace('entrystate=Templates', 'entrystate=Paging'));
});
我使用了一个通配符选择器来部分匹配href,这样它就不会在不相关的链接中循环。您可能需要调整它
哎呀,您可能没有使用jquery?“jscript方式”,所以循环遍历每个“a”标记,查找并替换href属性,这非常简单doable@KyleT用javascript?什么?他在“a”标记href中用javascript替换什么作为子字符串,客户端。不编辑纯文本文件这正是我想要的语法。谢谢!
$('a[href~="/SyntheticData/MasterDetail?"]').each(function() {
$(this).attr('href', $(this).attr('href').replace('entrystate=Templates', 'entrystate=Paging'));
});