Те, що ви насправді хочете, це плагін 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 .