【问题标题】:How can I take parameters from a url and append them to different tiles on the website?如何从 url 获取参数并将它们附加到网站上的不同图块?
【发布时间】:2020-02-03 12:27:11
【问题描述】:

我有一个网站,访问者可以在其中选择过滤器来寻找假期。当您导航到一个国家/地区时,页面顶部有四个带有地区或城市的图块。当您单击任何这些图块时,我想从 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 中的参数):

  • 地理=
    主题=
    机场=
    持续时间=
    订购=
    距离海滩= 等等……

【问题讨论】:

  • 您可以使用 this 将您的 url 参数更改为 json 并应用任何必要的检查并使用 this url 使用 json 重新生成参数,这比您上面的要容易得多

标签: javascript jquery url filter parameters


【解决方案1】:

为什么不试试原生 URLSearchParams 工具呢? https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

我不太明白你想包括什么然后排除:) 但有了这个你可以创建偶数集或全部获取。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-03-22
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多