Lo que realmente quieres es el complemento jQuery URL Parser . Con este complemento, obtener el valor de un parámetro de URL específico (para la URL actual) se ve así:
$.url().param('foo');
Si desea un objeto con nombres de parámetros como claves y valores de parámetros como valores, simplemente llame param()
sin un argumento, como este:
$.url().param();
Esta biblioteca también funciona con otras URL, no solo la actual:
$.url('http://allmarkedup.com?sky=blue&grass=green').param();
$('#myElement').url().param(); // works with elements that have 'src', 'href' or 'action' attributes
Como se trata de una biblioteca de análisis de URL completa, también puede obtener otra información de la URL, como el puerto especificado o la ruta, el protocolo, etc.
var url = $.url('http://allmarkedup.com/folder/dir/index.html?item=value');
url.attr('protocol'); // returns 'http'
url.attr('path'); // returns '/folder/dir/index.html'
También tiene otras características, consulte su página de inicio para obtener más documentos y ejemplos.
En lugar de escribir su propio analizador URI para este propósito específico que un poco funciona en la mayoría de los casos, utilizar un analizador real URI. Dependiendo de la respuesta, el código de otras respuestas puede regresar en 'null'
lugar de null
, no funciona con parámetros vacíos ( ?foo=&bar=x
), no puede analizar y devolver todos los parámetros a la vez, repite el trabajo si consulta repetidamente la URL para parámetros, etc.
Use un analizador de URI real, no invente el suyo.
Para aquellos aversos a jQuery, hay una versión del complemento que es JS puro .