jquery erhält Querystring von URL

Ich habe die folgende URL:

http://www.mysite.co.uk/?location=mylocation1

Was ich brauche, ist, den Wert von "location" aus der URL in eine Variable zu bekommen und dann in einem jQuery-Code zu verwenden:

var thequerystring = "getthequerystringhere"

$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);

Weiß jemand, wie man diesen Wert mit JavaScript oder jQuery abrufen kann?

Lösung

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

Dies ist, was Sie brauchen :)

Der folgende Code gibt ein JavaScript-Objekt zurück, das die URL-Parameter enthält:

// 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;
}

Zum Beispiel, wenn Sie die URL haben:

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

Dieser Code wird zurückgegeben:

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

und Sie können tun:

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

Ein einfacher Weg, dies mit einigen jQuery und gerade JS zu tun, sehen Sie einfach Ihre Konsole in Chrome oder Firefox, um die Ausgabe zu sehen ...

  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);
Kommentare (6)

Werfen Sie einen Blick auf diese Stackoverflow-Antwort.

 function getParameterByName(name, url) {
     if (!url) url = window.location.href;
     name = name.replace(/[\[\]]/g, "\\$&");
     var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
         results = regex.exec(url);
     if (!results) return null;
     if (!results[2]) return '';
     return decodeURIComponent(results[2].replace(/\+/g, " "));
 }

Sie können die Methode verwenden, um zu animieren:

Dh:

var thequerystring = getParameterByName("location");
$('html,body').animate({scrollTop: $("div#" + thequerystring).offset().top}, 500);
Kommentare (0)