当前位置: 首页 > 面试题库 >

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

年健
2023-03-14
问题内容

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

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

这将使我在以下URL中获得值“ 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


 类似资料:
  • 问题内容: 从格式如下的URL查询字符串中获取参数的“较少代码”方法是什么? www.mysite.com/category/subcategory?myqueryhash 输出应为: 我知道这种方法: 问题答案: 包含您要查找的数据。 文件资料 **php.net:$** _SERVER-手册

  • 我有url从中我需要得到的值. “TypeError:无法读取未定义的属性'query'”

  • 问题内容: 我需要的是将URL 的值转换成变量,然后在jQuery代码中使用它: 有谁知道如何使用JavaScript或jQuery来获取该价值? 问题答案: 这就是你所需要的:) 以下代码将返回一个包含URL参数的JavaScript对象: 例如,如果您具有URL: 此代码将返回: 您可以执行以下操作:

  • 问题内容: 关于$ location.search,文档说, 不带任何参数调用时返回当前URL的搜索部分(作为对象)。 在我的网址中,我的查询字符串包含一个不带值的参数’?test_user_bLzgB’。同样,’$ location.search()’返回一个对象。我如何获得实际的文字? 问题答案: 自从接受了接受的答案以来,不确定是否已更改,但是有可能。 将返回键值对的对象,该对象与查询字符串

  • 问题内容: 我有这样的网址: 我需要做的是在符号(查询字符串)后获取详细信息-即。如何使用JavaScript来获得? 到目前为止,我所做的是: 我不知道下一步该怎么做。 问题答案: 看一看的MDN文章有关。 QueryString在中可用。 同样适用于旧版浏览器的解决方案 MDN提供了一个如何获取QueryString中可用的单个键的值的示例在以上引用的文章中不再提供 。像这样: 在现代浏览器中

  • 问题内容: 从服务器重定向后,如何在我的routes.jsx文件中定义路由以从Twitter的单点登录过程生成的URL 捕获参数值? 我尝试使用以下路由配置,但没有捕获上述参数: 问题答案: 反应路由器v3 React Router已经为您解析了位置并将其作为道具传递给RouteComponent。您可以通过访问查询(在URL中的?之后)部分 如果要查找路径参数值(在路由器内部用冒号(:)分隔),