如何从网址获取参数?
来源: Highlight a button based on location
var pathname = window.location.pathname.split("/");
var filename = pathname[pathname.length-1];
alert(filename);
这可能是矫枉过正这里,但URL分析,我发现这个有用:
一个jQuery插件来解析URL,并提供便捷的信息其中包括协议,主机,端口,组成路径的段以及各种查询字符串值。
在你的情况,这将归结为类似:
jQuery.url.setUrl("http://localhost:8080/steer/trip/create/3").segment("4");
这将输出“3”或基本的url去年整段后,最后一个“/”斜线。
var urlsegment = top.location.href.match(/([^\/]+)$/)[1]
平原JS
var arr = (window.location.pathname).split("/");
var val = (arr[arr.length-1]);
您需要的值是val
这里是一个容易阅读和理解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;
}
}
嗯..似乎我误读你的问题..上面的解决方案只会过滤掉使用“GET”方法发布的变量。 – sharmaprateek 2011-03-16 05:54:41
有人没有读过这个问题 – nzifnab 2011-03-16 05:54:57
我假设你想要通过jQuery访问客户端控制器的操作方法的参数值。在这种情况下,我宁愿将参数值作为元数据在视图中发出,并用jQuery查询它,而不是解析url本身(尽管如此,您需要决定发射的位置)。
在ASP.NET MVC中,如果有一个路由接受以下模式:{控制器} {动作} {PARAM},HTTP:\为myhost \ myController的\ myaction \ 3和HTTP:\ myhost \ mycontroller \ myaction?param = 3是等同的,只解析一个URL模式是不够的。
您可能会在jQuery mdatadata plugin中找到有用的示例。
以下是上述链接中的示例之一。
<li class="someclass {some: 'data'} anotherclass">...</li>
<script>alert($('li.someclass').metadata().some);</script>
如果我的假设不正确,请忽略此答案。
感谢您的回应... – maaz 2011-03-16 11:29:19