2014-02-25 56 views
1

爲你們(不是那麼簡單對我來說)JQuery的獲得串號後的網址

我已經把基於此在計算器上其他線程的腳本,但我有獨特真的需要簡單的問題。我的網站上有一個表單,用戶將提交它,然後它會在網址中添加「?updated = 555」之類的內容。但是這個數字根據他們更新的內容而變化。

我需要一種方法來搜索數字(在我的示例中爲555),以便在提交表單並重新加載頁面時,可以滾動回該div。每個div都有一個唯一的ID,並在提交url時與該查詢字符串匹配。因此,所有我需要的是一個方法,找出數字是多少後,這樣我就可以把它傳遞給這個

scrollTop: $("#my-number").offset().top 

這裏是我迄今爲止「更新=?」:

<script> 
jQuery(document).ready(function($) { 
    if(window.location.href.indexOf("?updated=") > -1) { 
     $('html, body').animate({ 
      scrollTop: $("#my-number").offset().top 
     }, 2000); 
    } 
}); 
</script> 

回答

1

您可以使用正則表達式來獲得您的網址中的最後一個號碼:

var lastNumber = window.location.href.match(/\d+$/); 

氮利用:

scrollTop: lastNumber 
0

相反那麼,如何使用書籤?

http://stackoverflow.com/url#updated555 

<a id="updated555"></a> 

否則......

var queries = location.query.split('&'); 
for(var i=0; i<queries.length; i++) 
    if(queries[i].substr(0,8)==='updated=') 
     $('html, body').animate({ 
     scrollTop: $("#"+queries[i].substr(8)).offset().top 
     }, 2000); 

...你仍然可以使用書籤,因爲這是他們是什麼...

var query = location.hash; 
if(query.substr(0,7)==='updated') 
    $('html, body').animate({ 
    scrollTop: $("#"+query[i].substr(7)).offset().top 
    }, 2000); 
+0

這不會慢慢滾動,它會立即跳轉到那裏... – Jorg

1

參見:https://stackoverflow.com/a/14663371/183181

function URLParameters(_querystring){ 
    var queryString = _querystring || window.location.search || ''; 
    var keyValPairs = []; 
    var params  = {}; 

    queryString = queryString.replace(/^[^?]*\?/,''); // only get search path 

    if (queryString.length) 
    { 
     keyValPairs = queryString.split('&'); 
     for (pairNum in keyValPairs) 
     { 
      if (! (!isNaN(parseFloat(pairNum)) && isFinite(pairNum))) continue; 
      var key = keyValPairs[pairNum].split('=')[0]; 
      if (!key.length) continue; 
      if (typeof params[key] === 'undefined') 
      params[key] = []; 
      params[key].push(keyValPairs[pairNum].split('=')[1]); 
     } 
    } 
    return params; 
} 


var params = URLParameters(); 
params.updated; //[555] 

所以,如果你知道這是唯一的一個值,那麼,params.updated[0]params.updated.shift()應該等於555