trước đây tôi chỉ cho câu hỏi này: Get QueryString values with jQuery - nhưng như @Crescent tươi chỉ ra, những ví dụ không đối phó với mảng trong chuỗi truy vấn (và bên cạnh đó, họ là một chút chậm Tôi nghĩ
. Vì vậy, tôi nấu chín lên phiên bản của tôi về chức năng này:
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;
}
Nhưng có nhiều tiền đề nó sẽ chỉ làm việc trên một chuỗi truy vấn thành lập một cách chính xác - không có phát hiện lỗi Ngoài ra, nó không hoạt động trên số/mảng lập chỉ mục... đó là khi mảng của bạn được xác định trong chuỗi truy vấn là:
?category[3]=1&category[4]=7&category[20]=3&id=8az
Nó sẽ là tầm thường để thêm vào truy vấn .search() một regex cho việc tìm kiếm đó là tốt, nhưng tôi không phải là chuyên gia regex tốt nhất ... ai có ý tưởng?
Đúng là có, với getUrlParam trả về một mảng khi tôi cần. – Hibiscus
hmm.,. tại sao bạn lại chọn nó làm câu trả lời đúng? – arnorhs
Bởi vì, như ông vừa nói ... "thực sự có, [đề nghị của tôi] làm" làm những gì ông cần. –