Get querystring from URL using jQuery [duplicate] Get querystring from URL using jQuery [duplicate] javascript javascript

Get querystring from URL using jQuery [duplicate]


From: http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

This is what you need :)

The following code will return a JavaScript Object containing the URL parameters:

// Read a page's GET URL variables and return them as an associative array.function getUrlVars(){    var vars = [], hash;    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');    for(var i = 0; i < hashes.length; i++)    {        hash = hashes[i].split('=');        vars.push(hash[0]);        vars[hash[0]] = hash[1];    }    return vars;}

For example, if you have the URL:

http://www.example.com/?me=myValue&name2=SomeOtherValue

This code will return:

{    "me"    : "myValue",    "name2" : "SomeOtherValue"}

and you can do:

var me = getUrlVars()["me"];var name2 = getUrlVars()["name2"];


To retrieve the entire querystring from the current URL, beginning with the ? character, you can use

location.search

https://developer.mozilla.org/en-US/docs/DOM/window.location

Example:

// URL = https://example.com?a=a%20a&b=b123console.log(location.search); // Prints "?a=a%20a&b=b123" 

In regards to retrieving specific querystring parameters, while although classes like URLSearchParams and URL exist, they aren't supported by Internet Explorer at this time, and should probably be avoided. Instead, you can try something like this:

/** * Accepts either a URL or querystring and returns an object associating  * each querystring parameter to its value.  * * Returns an empty object if no querystring parameters found. */function getUrlParams(urlOrQueryString) {  if ((i = urlOrQueryString.indexOf('?')) >= 0) {    const queryString = urlOrQueryString.substring(i+1);    if (queryString) {      return _mapUrlParams(queryString);    }   }  return {};}/** * Helper function for `getUrlParams()` * Builds the querystring parameter to value object map. * * @param queryString {string} - The full querystring, without the leading '?'. */function _mapUrlParams(queryString) {  return queryString        .split('&')     .map(function(keyValueString) { return keyValueString.split('=') })    .reduce(function(urlParams, [key, value]) {      if (Number.isInteger(parseInt(value)) && parseInt(value) == value) {        urlParams[key] = parseInt(value);      } else {        urlParams[key] = decodeURI(value);      }      return urlParams;    }, {});}

You can use the above like so:

// Using location.searchlet urlParams = getUrlParams(location.search); // Assume location.search = "?a=1&b=2b2"console.log(urlParams); // Prints { "a": 1, "b": "2b2" }// Using a URL stringconst url = 'https://example.com?a=A%20A&b=1';urlParams = getUrlParams(url);console.log(urlParams); // Prints { "a": "A A", "b": 1 }// To check if a parameter exists, simply do:if (urlParams.hasOwnProperty('parameterName') {   console.log(urlParams.parameterName);}


An easy way to do this with some jQuery and straight JavaScript, just view your console in Chrome or Firefox to see the output...

  var queries = {};  $.each(document.location.search.substr(1).split('&'),function(c,q){    var i = q.split('=');    queries[i[0].toString()] = i[1].toString();  });  console.log(queries);