2011-03-16 150 views

回答

2

這可能是矯枉過正這裏,但URL分析,我發現這個有用:

一個jQuery插件來解析URL,並提供便捷的信息其中包括協議,主機,端口,組成路徑的段以及各種查詢字符串值。

在你的情況,這將歸結爲類似:

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

可能是過度殺傷,但有用 – mattsven 2011-03-16 05:46:29

+0

我認爲這是「很高興知道這種事情存在」 - 類型的信息+1 – Tx3 2011-03-16 05:52:28

1

這將輸出「3」或基本的url去年整段後,最後一個「/」斜線。

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

平原JS

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

您需要的值是val

-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; 
      } 
} 
+0

嗯..似乎我誤讀你的問題..上面的解決方案只會過濾掉使用「GET」方法發佈的變量。 – sharmaprateek 2011-03-16 05:54:41

+0

有人沒有讀過這個問題 – nzifnab 2011-03-16 05:54:57

0

我假設你想要通過jQuery訪問客戶端控制器的操作方法的參數值。在這種情況下,我寧願將參數值作爲元數據在視圖中發出,並用jQuery查詢它,而不是解析url本身(儘管如此,您需要決定發射的位置)。

在ASP.NET MVC中,如果有一個路由接受以下模式:{控制器} {動作} {PARAM}HTTP:\爲myhost \ myController的\ myaction \ 3HTTP:\ myhost \ mycontroller \ myaction?param = 3是等同的,只解析一個URL模式是不夠的。

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

以下是上述鏈接中的示例之一。

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

如果我的假設不正確,請忽略此答案。