如何从网址获取参数?

时间:2011-03-16 05:38:54

标签: jquery parsing url

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

6 个答案:

答案 0 :(得分:12)

自: Highlight a button based on location

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

alert(filename);

答案 1 :(得分:2)

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

  

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

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

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

答案 2 :(得分:2)

Plain js

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

您需要的值位于val

答案 3 :(得分:1)

这将输出“3”或基本上是最后一个“/”斜线后的网址的最后一段。

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

答案 4 :(得分:0)

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

在这种情况下,我宁愿在视图中将参数值作为元数据发出,并使用jQuery查询它而不是解析url本身(你需要决定在哪里发射)。

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

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

以下是上述链接中的一个示例。

<li class="someclass {some: 'data'} anotherclass">...</li>
<script>alert($('li.someclass').metadata().some);</script>

如果我的假设不正确,请忽略此答案。

答案 5 :(得分:-2)

这是一个易于阅读和理解的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;
            }
}