У меня есть сайт, где посетители могут выбирать фильтры, чтобы найти отпуск. Когда вы переходите в страну, на странице четыре листа с регионами или городами. Я хотел бы взять параметры из URL и прикрепить их к новому URL, когда вы нажимаете на любую из этих плиток. Это мой код:
var arr = window.location.search.split('?')[1].split('&');
var filters = "";
$(arr).each(function (i) {
if (arr[i].indexOf("geo=") === -1 && arr[i].indexOf("order=") === -1 && arr[i].indexOf("theme=") === -1) {
filters = filters.concat("&", arr[i]);
}
});
$("a.vak-card__content.vak-card__content--overlaid").each(function (i) {
var href = $("a.vak-card__content.vak-card__content--overlaid:eq(" + i + ")").attr("href");
if (href.indexOf("geo=") != -1) {
href = href.split("&search=yes")[0].concat(filters);
$("a.vak-card__content.vak-card__content--overlaid:eq(" + i + ")").attr("href", href);
}
});
Единственная проблема в том, что приведенный выше код не учитывает двойные значения. Задача состоит в том, чтобы определить фильтры из текущего URL как со значением, так и без значения, затем исключить фильтры без значения для всех плиток, сравнить с фильтрами из URL и, наконец, если фильтр не включен в URL, чтобы добавить его в плитка (новый URL). Я знаю, это звучит запутанно, я sh Я мог бы объяснить это более четко.
Фильтры, о которых я говорю (параметры в URL):
- geo =
тема =
аэропорты =
продолжительность =
заказ =
distanceToBeach = et c ...