wake-up-neo.com

lesen Sie die GET-Variablen in der URL JQuery

Wir entschuldigen uns für eine weitere "einfache" Frage, aber es gibt eine einfache Möglichkeit, die GET-Variablen von einer URL zu lesen. Beispiel. Ich habe eine URL http://www.domain.com/page.php?var1=1 In meinem Fall habe ich nur eine Variable, d. H. var1 oder var2 (die Variable kann sich ändern, aber es gibt nur eine pro URL). Alle Tuts, die ich gesehen habe, beziehen sich eher auf Arrays als auf "Singletons". OK, ich weiß, eine Array-Lösung ist vielleicht besser, aber dies ist nur eine einfache Variable zum Abrufen. Irgendwelche Vorschläge? Danke im Voraus

16
Russell Parrott
var split = location.search.replace('?', '').split('=')

split[0] ist Ihr Variablenname und split[1] ist Ihr Variablenname. Du brauchst jQuery eigentlich nicht wirklich für diesen Code;)

Was den Kommentar von twiz angeht, kann das Aufteilen mehrerer Variablen folgendermaßen erfolgen:

var split = location.search.replace('?', '').split('&').map(function(val){
  return val.split('=');
});

Sie können über split[index][0] auf den Variablennamen und über split[index][1] auf den Wert zugreifen.

Natürlich können Sie auch das zweite Snippet anstelle des ersten für eine Variable verwenden.

41
usoban

Ich benutze dies in meiner Standard-Javascript-Datei.

var get = [];
location.search.replace('?', '').split('&').forEach(function (val) {
    split = val.split("=", 2);
    get[split[0]] = split[1];
});

Jetzt können Sie sie mit Namen verwenden:

get["var1"]
3
Tiele Declercq

Sie können diese Funktion verwenden, die den Wert des angegebenen Variablennamens von der URL zurückgibt, wenn die Variable vorhanden ist. Andernfalls erhalten Sie eine leere Zeichenfolge.

function getUrlValue(varName) {
    var split = $(location).attr('href').split('?');
    var value = '';
    if (split.length == 2) {
        split = split[1].split('&');
        for (var i = 0; i < split.length; i+=1) {
            var keyValue = split[i].split('=');
            if (keyValue.length == 2 && keyValue[0] == varName) {
                value = keyValue[1];
                break;
            }
        }
    }
    return value;
}
0
ungalcrys