Um pouco mais limpo no JSFiddle – http://jsfiddle.net/drzaus/8EE8k/
Freqüentemente, em Javascript, você deseja parametrizar um mapa (hash | dicionário | qualquer) para criar uma string de URL, e o jQuery tem a função de utilitário $ .param para ajudá-lo a fazer isso:
var urlQueryString = $.param({
action: "create",
what: "ProductEntry",
color: "green",
size: "medium"
});
rendimentos
action=create&what=ProductEntry&color=green&size=medium
Mas o que acontece quando você quer o contrário? jQuery não tem uma função “deparam”. Aposto que outras bibliotecas de utilitários têm , e provavelmente são mais robustas, mas é divertido escrever a sua própria.
deparam = function (querystring) {
// remove any preceding url and split
querystring = querystring.substring(querystring.indexOf('?')+1).split('&');
var params = {}, pair, d = decodeURIComponent, i;
// march and parse
for (i = querystring.length; i > 0;) {
pair = querystring[--i].split('=');
params[d(pair[0])] = d(pair[1]);
}
return params;
};//-- fn deparam