小编典典

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

all

任何人都知道编写 jQuery 扩展来处理查询字符串参数的好方法吗?我基本上想扩展 jQuery 魔术($)函数,所以我可以做这样的事情:

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

这会给我以下 URL 中的值“test” http://www.example.com/index.php?search=test:.

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


阅读 81

收藏
2022-08-15

共1个答案

小编典典

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

//Assuming URL has "?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

$.urlParam = function (name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)')
                      .exec(window.location.search);

    return (results !== null) ? results[1] || 0 : false;
}

console.log($.urlParam('action')); //edit
2022-08-15