【发布时间】: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 中的参数):
- 地理=
主题=
机场=
持续时间=
订购=
距离海滩= 等等……
【问题讨论】:
标签: javascript jquery url filter parameters