我有一个类似这样的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
中。在您的情况下,这将归结为类似以下内容:一个jQuery插件,用于解析url并提供轻松访问其中的信息,例如协议、主机、端口、构成路径的各个段以及各种查询字符串值。
jQuery.url.setUrl("http://localhost:8080/steer/trip/create/3").segment("4");
var urlsegment = top.location.href.match(/([^\/]+)$/)[1]
我假设您想通过jQuery在客户端访问控制器操作方法的参数值。
在这种情况下,我宁愿将参数值作为视图中的元数据发出,并使用jQuery查询它,而不是解析url本身(但您需要决定在哪里发出)。
在ASP.NET MVC中,如果您有一个接受以下模式的路由:{controller}{action}{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>
如果我的假设不正确,请忽略这个答案。
这里有一个易于阅读和理解的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;
}
}