如何从url获取参数?

我有这样的url。 http:// localhost:8080 / steer / trip / create / 3 。 在我的页面中我想使用jquery获取值“3”。 请帮我

发件人: 突出显示基于位置的按钮

var pathname = window.location.pathname.split("/"); var filename = pathname[pathname.length-1]; alert(filename); 

普通的js

 var arr = (window.location.pathname).split("/"); var val = (arr[arr.length-1]); 

您需要的值是val

这可能有些过分,但对于URL解析,我发现这很有用:

一个jQuery插件,用于解析URL并提供对其中信息的轻松访问,例如协议,主机,端口,组成路径的段以及各种查询字符串值。

在你的情况下,这将归结为:

 jQuery.url.setUrl("http://localhost:8080/steer/trip/create/3").segment("4"); 

这将输出“3”或基本上是最后一个“/”斜杠后的url的整个最后一段。

 var urlsegment = top.location.href.match(/([^\/]+)$/)[1] 

我假设你想通过客户端中的jQuery访问控制器的action方法的参数值。

在这种情况下,我宁愿在视图中将参数值作为元数据发出并使用jQuery进行查询,而不是解析url本身(尽管如此,您需要确定在哪里发布)。

在ASP.NET MVC中,如果您有一个接受以下模式的Route: {controller} {action} {param}http:\ myhost \ mycontroller \ myaction \ 3http:\ myhost \ mycontroller \ myaction?param = 3是等价的,只解析一个URL模式是不够的。

您可以在jQuery mdatadata插件中找到有用的示例。

以下是上面链接中的示例之一。

 
  • ...
  • 如果我的假设不正确,请忽略这个答案。

    这是一个易于阅读和理解的JS函数,您可以使用它从url中检索任何变量。

    您需要做的就是使用要过滤的变量的名称调用此函数,它将返回给您的值。

    希望能帮助到你:

     function getVarFromURL(varName){ var url = window.location.href; url = url.substring(url.indexOf('?')); var urlLowerCase = url.toLowerCase(); varName = varName.toLowerCase(); if (urlLowerCase.indexOf(varName + "=") != -1) { var value = url.substring(urlLowerCase.indexOf(varName) + varName.length + 1); if (value.indexOf('&') != -1) { value = value.substring(0, value.indexOf('&')); } return value; } else { return null; } }