jQuery-如何从URL获取GET变量

时间:2014-08-18 01:10:07

标签: jquery

在我的js文件中,我根据从API中提取的一些数据输出超链接:

output += '<a class="reg_link" href="'+regObj.href+'?reg='+value+'" title="'+regObj.title+'" target="_blank">';

这很好用。但是,稍后我想找出?reg=值是什么。

$(".reg_link").each(function() {
  // How do I get the GET variable from the URL?
});

我试图抓住GET变量的值。我该怎么做?

2 个答案:

答案 0 :(得分:2)

首先,您不应该通过将数据连接到HTML来创建HTML。您可能会冒险创建无效的HTML并自行解决注入问题。此外,无论您将哪些内容连接到URL,都不能编码以便在URL中使用。试试这个

$('<a>')
  .addClass('reg_link')
  .attr('href', '?' + $.param({
    reg: value
  })
  .attr('title', regObj.title)
  .attr('target', '_blank')

接下来,要稍后再获取该属性:

$('.reg_link').each(function () {
  console.log($(this).attr('href'));
});

如果要解析查询字符串中的参数,请参阅有关的现有问题:https://stackoverflow.com/a/6644712/362536

答案 1 :(得分:0)

来自How can I get query string values in JavaScript?

你不需要为此目的使用jQuery。您只能使用一些纯JavaScript:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

用法:

var reg = getParameterByName('reg');