有人知道编写 jQuery 扩展来处理查询字符串参数的好方法吗?我基本上想扩展 jQuery 魔法 ($)
函数,这样我就可以做这样的事情:
$('?search').val();
这会给我以下 URL 中的值“test”:http://www.example.com/index.php?search=test
。
我已经在 jQuery 和 Javascript 中看到很多可以执行此操作的函数,但实际上我想扩展 jQuery 以完全按照上面显示的方式工作。我不是在寻找 jQuery 插件,而是在寻找 jQuery 方法的扩展。
最佳答案
经过多年丑陋的字符串解析,有一个更好的方法: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
使用来自 an answer below 的这个功能而不是 URLSearchParams
$.urlParam = function (name) {
var results = new RegExp('[\?&]' + name + '=([^&#]*)')
.exec(window.location.search);
return (results !== null) ? results[1] || 0 : false;
}
console.log($.urlParam('action')); //edit
关于javascript - 使用 jQuery/Javascript (querystring) 获取查询字符串参数 url 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731778/