你如何在jQuery中循环并显示参数

时间:2011-11-17 00:16:43

标签: javascript jquery

假设您有一个类似http://www.somesite.com/somepage.html?id=1&page=2&field=3

的网址

现在使用jQuery我想显示传递给页面的所有GET变量。我怎么做到这一点。如果它作为一些Debug函数的一部分完成的话,它很好(甚至可能更好)。

3 个答案:

答案 0 :(得分:2)

(function(){

var $_GET = {};

jQuery.each( document.location.search.substr(1).split( "&" ), function(index, value ){
var split = value.split("=");
$_GET[decodeURIComponent( split[0] )] = decodeURIComponent( split[1] );
});

window.$_GET = $_GET;

})();

答案 1 :(得分:1)

您需要查看window.location.href变量。

这是一个很好的指南,可以完全按照您的要求执行:http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html

基本上使用getUrlVars扩展jQuery:

$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

然后使用它:

var allVars = $.getUrlVars();
var byName = $.getUrlVar('name');

答案 2 :(得分:1)

您可以使用window.location.search。这是一个快速函数,它将参数作为对象返回:

function getParameters() {
    var parameters = {};
    var splitStr = window.location.search.substring(1).split(/[&=]/);
    var i, key, value;

    for(i = 0; typeof (key = splitStr[i], value = splitStr[i + 1]) !== 'undefined'); i += 2) {
        parameters[decodeURIComponent(key)] = decodeURIComponent(value);
    }

    return parameters;
}