2011-05-16 2 views
2

Je veux être en mesure d'extraire un couple de paires de valeurs clés (si elles existent) à partir d'un href. Supposons que l'exemple hrefs ressemble à:jQuery parse href pour les paires de valeurs clés

http://server/index.pl?foo=bar&baz=123 
http://server/index.pl?foo=bar 

Fondamentalement baz peut ne pas exister. En utilisant jQuery je capture ceci sur la fonction de clic, j'aimerais pouvoir savoir quelles sont les valeurs (si elles existent).

Merci

Répondre

2

Quelque chose que je l'ai utilisé dans le passé pour cela est une fonction simple comme ceci:

var $_GET = {}; 
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function() { 
function decode(s) { 
    return decodeURIComponent(s).replace(/\+/g, " "); 
} 
$_GET[decode(arguments[1])] = decode(arguments[2]); 
}); 

la variable $_GET contient tout. $_GET.baz renverrait 123 par exemple. Vous pouvez également y accéder comme $_GET["baz"] si vous avez besoin de taper des chaînes avec des espaces.

+0

Cela ressemble à une idée, merci. – Raoul

7

Vous pouvez utiliser le JQuery URL parser pour y parvenir. Voici un exemple où un objet des paramètres est retourné:

$.url('http://allmarkedup.com?sky=blue&grass=green').param(); // returns { 'sky':'blue', 'grass':'green' } 
1

Vous pouvez trouver de nombreuses solutions sur le net, jetez un oeil à parseUri, par exemple.

Questions connexes