jQuery — как получить значение GET параметра

Один из способов получить значение нужного нам параметра — регулярные выражения. Его и рассмотрим.

Как в jQuery сделать проверку на url параметр

Получить адресную строку сайта можно несколькими способами. Посмотреть что получается вы можете прописав в консоле вашего браузера, например так:

window.location.search
window.location.href

И если в том же PHP мы бы разбирались с этим гораздо проще:

if ($_GET['param'] == 'Y') {..}

То для этой задачи мы будем использовать регулярные выражения:

$(function(){
	$.urlParam = function(name){
		var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
		if (results == null) {
			return 0;
		}
		return results[1] || 0;
	}
//...

И хотя строка if (results == null) { выглядит не сильно красиво, но её нужно оставить чтобы избежать ошибки в консоле. А если у вас есть более красивое решение — поделитесь в комментариях 🙂

Используем нашу функцию:

let $urlOffer = $.urlParam('offer');

Тут мы проверяем параметр offer, то есть смотрим наш url на наличие, к примеру ?offer=123.

Далее задействуем значение этого параметра в нашем скрипте:

if ($urlOffer && $urlOffer > 0) {
	$('.prod-item').each(function() {
		let $this = $(this),
			$id = $this.data('offer-id');
		if ($urlOffer == $id) {
			$this.click();
			return false;
		}
	});
}

В данном примере мы обходим нужные нам элементы через цикл each и при совпадении нужного нам результата прерываем его — return false; Сам же id мы записали в data атрибут, который полностью выглядит так:

data-offer-id="123"

Давайте попробуем упростить код и сделать его без циклов:

if ($urlOffer && $urlOffer > 0) {
	$('.values-product__choice[data-offer-id="'+$urlOffer+'"]').click();
}

Такой вариант тоже отлично работает.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое

E-mail: dmitriyribka@gmail.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *