Читать переменные GET в URL-адресе JQuery
Извините за другой "простой" вопрос, но есть ли простой способ прочитать переменные GET из URL. пример. У меня есть url http://www.domain.com/page.php?var1=1
В моем случае у меня будет только 1 переменная i.e. var1
или var2
(переменная может измениться, но каждый будет только один на URL). Все проблемы, которые я видел, относятся к массивам, а не к синглонам. Я знаю, что решение массива может быть лучше, но это просто простая переменная get get. Какие-либо предложения? Спасибо заранее
Ответы
Ответ 1
var split = location.search.replace('?', '').split('=')
split[0]
- ваше имя var, а split[1]
- ваше значение var. Вам действительно не нужен jQuery для этой части кода;)
Как и для комментария twiz, можно сделать так, чтобы разбиение нескольких переменных было следующим:
var split = location.search.replace('?', '').split('&').map(function(val){
return val.split('=');
});
Вы можете получить имя переменной split[index][0]
и значение split[index][1]
.
Конечно, вы можете использовать второй фрагмент вместо первого для одной переменной.
Ответ 2
Я использую это в файле javascript по умолчанию.
var get = [];
location.search.replace('?', '').split('&').forEach(function (val) {
split = val.split("=", 2);
get[split[0]] = split[1];
});
Теперь вы можете использовать их по имени:
get["var1"]
Ответ 3
Вы можете использовать эту функцию, которая возвращает значение указанного имени var из url, если существует var. В противном случае вы получите пустую строку.
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;
}