Читать переменные 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;
}