2010-08-11 26 views
0

我將字符串(url)存儲在變量中 它看起來像一個/兩個/三個/ test.aspx?ID = 12312 我想提取查詢字符串的值,而不是window.location的,但是從HTML使用Javascript獲取字符串的結尾

我以爲我可以使用子寫

var link = ($(this).find('a').attr('href')); 
var qs = link.substring(link.indexOf("="), text.indexOf(" ")) 

但它返回的=,而不是之前和之後的字符串。

我在做什麼錯? 在此先感謝。

回答

0

只需省略第二個參數即可。在這種情況下,應該從提供的索引開始返回字符串的結尾。

+0

嗨,我試過,但腳本中斷。再試一次,它的工作原理肯定是其他的東西 var linkID = link.substring(link.indexOf(「=」)+ 1)做到了。 – Peter 2010-08-11 06:20:32

+0

是的,只需要等10分鐘才能接受... – Peter 2010-08-11 06:24:47

+0

哦,真的嗎?不知道。 :-) – 2010-08-11 06:26:37

3

前一段時間,我會寫一個短的功能如下:

/** 
    * Gets the query parameters of the given URI as a associative array or map 
    * e.g. Given a URI http://www.level3labs.com/jaf?foo=bar&baz=bazzm, will 
    * give {"foo":"bar", "baz":"bazzm"} 
    * @param {URI} strUri The uri with a query 
    * @return Object containing query params or and empty object 
    */ 
    function getQueryParams(strUri) { 
    var paramMap = {}; 
    if(!!strUri) { 
     return paramMap; 
    } 

    var strQuery = strUri.substring(strUri.indexOf("?")); 
    if(strQuery && strQuery.indexOf("?") === 0 && strQuery.length > 1) { 
     strQuery = strQuery.substring(1); 
     var paramValArr = strQuery.split("&"); 
     for(var i = 0, len = paramValArr.length; i < len; i++) { 
      var paramVal = paramValArr[i]; 
      var delimIdx = paramVal.indexOf("="); 

      var param = null; 
      var val = null; 
      if(delimIdx >= 0) { 
       param = unescape(paramVal.substring(0, delimIdx)); 
       val = unescape(paramVal.substring(delimIdx + 1)); 
      }else { 
       param = unescape(paramVal); 
      } 
      paramMap[param] = val; 
     } 
    } 
    return paramMap; 
    } 
+0

+1爲徹底的答案 – Falle1234 2010-08-11 07:10:28

0

試試這個

var link = ($(this).find('a').attr('href')); 
var qs = link.substring(link.indexOf("=")); 
0

另一種方式可以是:

VAR QS =鏈接。.split( 「=」)POP();