任何人都知道编写jQuery扩展来处理查询字符串参数的好方法吗?我基本上想扩展jQuery魔术($)功能,因此可以执行以下操作:
($)
$('?search').val();
这将使我在以下URL中获得值“ test” :http://www.example.com/index.php?search=test。
http://www.example.com/index.php?search=test
我已经看到了很多可以在jQuery和Javascript中执行此操作的函数,但是我实际上想扩展jQuery以使其完全如上所示工作。我不是在寻找jQuery插件,而是在寻找jQuery方法的扩展。
经过多年的丑陋字符串解析之后,有一种更好的方法: 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"
使用此函数代替 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