如何使用jQuery从URL获取数据

7

使用jQuery从URL获取数据是否可能?

例如,如果您有www.test.com/index.html?id=1&name=boo

如何获取id和name?


4
可以使用 JavaScript 中的 URLSearchParams 对象来解析 URL 查询字符串并获取其值。以下是示例代码: const urlParams = new URLSearchParams(window.location.search); const myParam = urlParams.get('myParam');其中 window.location.search 包含查询字符串部分(即 URL 中 ? 之后的部分)。然后,您可以使用 get 方法检索特定参数的值。 - wroniasty
4个回答

10

试试这个。它是纯JavaScript,不涉及jQuery。事实上,对于这样的任务,jQuery太重了。

function GetURLParameter(sParam)
{
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++)
    {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam)
        {
            return decodeURIComponent(sParameterName[1]);
        }
    }
}​

var id = GetURLParameter('id');
var name= GetURLParameter('name');

使用decodeURIComponent来允许参数值包含任何字符,例如非常重要的等于号=、和号&或问号?


1
这是纯JavaScript代码,不是jQuery。 - Krzysztof Jabłoński
3
@KrzysztofJabłoński - 如果您正在使用纯JavaScript,请查看与您的问题重复的答案:https://dev59.com/nHNA5IYBdhLWcg3wmfAa - Tony
感谢您和@Tony的帮助,欢迎您。 - Alessandro Minoccheri
另一个小问题.. geturlparameter 返回一个字符串吗?因为我无法在 if 语句中进行比较。 - bdz
我刚刚给这个答案点了赞,因为它解决了我正在寻找的问题,但是我不知道说jQuery对于任何工作来说都可能太重是准确的说法,个人观点。 - Matt Cremeens

1
如果你知道 URL 总是具有 idname,那么这就是一个简单的问题。
var url = "www.test.com/index.html?id=1&name=boo";
var id = /id=(\d+)/.exec(url)[1];
var name = /name=(\w+)/.exec(url)[1];

0

在这里,我已经为上述问题提供了完整的解决方案。请检查下面显示的演示链接。

首先,在头部标签中引入最新的jquery.js和querystring-0.9.0.js脚本文件。

演示:http://codebins.com/bin/4ldqpac

HTML

<a href="#?param1=abc&param2=def">
  abc
</a>

JQuery

$(function() {
    $("a").click(function() {
        setTimeout(function() {
            var param1 = $.QueryString("param1");
            var param2 = $.QueryString("param2");
            alert(param1);
            alert(param2);
        }, 300);

    });
});

演示:http://codebins.com/bin/4ldqpac


0

试试这个:在IE和Chrome中都可以正常工作。通过JavaScript获取查询字符串的值。

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

        var getData= $.urlParam('emailid');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接