Что вам действительно нужно, так это плагин 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 .