Javascript 如何更新网页中的多个链接

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&amp;entrystate=Templates&amp;selectedrow=5">►</a> 我需要将entrystate=Templates更改为entrystate=Paging 有没有j

我正在使用MVC webgrid,导航页面的一个工件是我有很多URL,看起来像:

<a href="/SyntheticData/MasterDetail?modelIn=Exact.Web.ViewModel.MasterDetailViewModel&amp;entrystate=Templates&amp;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'));
});