Что вам действительно нужно, так это плагин jQuery URL Parser . С помощью этого плагина получение значения определенного параметра URL (для текущего URL) выглядит следующим образом:
$.url().param('foo');
Если вы хотите, чтобы объект с именами параметров в качестве ключей и значениями параметров в качестве значений, вы просто вызвали бы param()
без аргумента, например:
$.url().param();
Эта библиотека также работает с другими URL-адресами, а не только с текущими:
$.url('http://allmarkedup.com?sky=blue&grass=green').param();
$('#myElement').url().param(); // works with elements that have 'src', 'href' or 'action' attributes
Поскольку это целая библиотека для разбора URL, вы также можете получить другую информацию из URL, такую как указанный порт или путь, протокол и т. Д .:
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'
У него есть и другие функции, посетите домашнюю страницу , чтобы получить больше документов и примеров.
Вместо написания собственного анализатора URI для этой конкретной цели, которая своего рода работает в большинстве случаев, используйте фактический анализатор URI. В зависимости от ответа, код из других ответов может возвращать 'null'
вместо null
, не работает с пустыми параметрами (?foo=&bar=x
), не может проанализировать и вернуть все параметры сразу, повторяет работу, если вы повторно запросить URL для параметров и т. д.
Используйте фактический парсер URI, не изобретайте свой собственный.
Для тех, кто не любит jQuery, есть версия плагина, которая является чистым JS .