开发者

read the GET variables in url JQuery

Sorry for another "simple" question, but is there an easy way to read the GET variables from a URL. example. I have a url http://www.domain.com/page.php?var1=1 In my case I will only have 1 variable i.e. var1 or var2 (the variable can change but there will only every be one per开发者_StackOverflow url). All the tuts I have seen relate to arrays rather than "singletons" OK I know an array solution may be better but this is just a simple single get variable. Any suggestions? Thanks in advance


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

split[0] is your var name, and split[1] is your var value. You actually don't really need jQuery for that piece of code ;)

As for twiz's comment, splitting multiple variables can be done like that:

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

You can access variable name by split[index][0] and value by split[index][1].

Of course you can use the second snippet instead of the first one for one variable too.


I use this in my default javascript file.

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

Now you can use them by name:

get["var1"]


You can use this function that returns the value of the specified var name from url if the var exists. Otherwise you will get an empty string.

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;
}


With ES2019 to create an object:

let GET = Object.fromEntries( location.search
                                      .replace( '?', '' )
                                      .split( '&' )
                                      .map( i => i.split( '=' ) ) );

The Object.fromEntries method creates an object from an array.

For the URL http://www.example.com/page?var1=1&var2=2 the above code returns the object

{
  var1: '1',
  var2: '2'
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜