一尘不染

使用jQuery / Javascript获取查询字符串参数的URL值(querystring)

javascript

任何人都知道编写jQuery扩展来处理查询字符串参数的好方法吗?我基本上想扩展jQuery魔术($)功能,因此可以执行以下操作:

$('?search').val();

这将使我在以下URL中获得值“ test” :http://www.example.com/index.php?search=test

我已经看到了很多可以在jQuery和Javascript中执行此操作的函数,但是我实际上想扩展jQuery以使其完全如上所示工作。我不是在寻找jQuery插件,而是在寻找jQuery方法的扩展。


阅读 406

收藏
2020-05-01

共1个答案

一尘不染

经过多年的丑陋字符串解析之后,有一种更好的方法: URLSearchParams 让我们看看如何使用这个新的API从该位置获取值!

//假设“?post = 1234&action = edit”

var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?

post=1234&action=edit&active=1"

更新:不支持IE

使用此函数代替 URLSearchParams

$.urlParam = function (name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                      .exec(window.location.href);
    if (results == null) {
         return 0;
    }
    return results[1] || 0;
}

console.log($.urlParam('action')); //edit
2020-05-01