Как я могу взять параметры из URL и добавить их к разным плиткам на сайте? - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть сайт, где посетители могут выбирать фильтры, чтобы найти отпуск. Когда вы переходите в страну, на странице четыре листа с регионами или городами. Я хотел бы взять параметры из 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 ...

1 Ответ

0 голосов
/ 03 февраля 2020

Почему бы вам не попробовать собственный URLSearchParams util? https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

Я не совсем понимаю, что вы хотели бы включить, а затем исключить :), но с этим вы можете создать четные наборы или получить все. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...