ja wcześniej wskazał na to pytanie: Get QueryString values with jQuery - ale jak @Crescent Fresh wskazał, te przykłady nie radzić sobie z tablicami w ciągu kwerendy (a poza tym są one nieco powolny myślę
. więc gotowane moją wersję tej funkcji:
function getQueryString() {
var ret = {};
var parts = (document.location.toString().split('?')[1]).split('&');
for (var i = 0; i < parts.length; i++) {
var p = parts[i].split('=');
// so strings will be correctly parsed:
p[1] = decodeURIComponent(p[1].replace(/\+/g, " "));
if (p[0].search(/\[\]/) >= 0) { // then it's an array
p[0] = p[0].replace('[]','');
if (typeof ret[p[0]] != 'object') ret[p[0]] = [];
ret[p[0]].push(p[1]);
} else {
ret[p[0]] = p[1];
}
}
return ret;
}
Ale istnieją zastrzeżenia będzie działać tylko na poprawnie utworzonego łańcucha zapytania - nie ma wykrywania błędów także, to nie działa na numerowane/tablic indeksowanych... to jest, gdy twoja tablica jest zdefiniowana w ciągu zapytania jako:
?category[3]=1&category[4]=7&category[20]=3&id=8az
Byłoby trywialnie dodać do zapytania .search() regex dla znalezienia tego również, ale nie jestem najlepszym ekspertem od regex ... ktokolwiek ma pomysły?
Tak, tak, z getUrlParam, który zwraca tablicę, jak potrzebowałem. – Hibiscus
hmm.,. dlaczego wybrałeś go jako poprawną odpowiedź? – arnorhs
Ponieważ, jak właśnie powiedział ... "Tak, tak, [moja sugestia]" robi to, czego potrzebował. –