我有一个页面,允许我通过 "过滤器 "标签来过滤帖子。我需要添加任何点击的过滤器作为查询参数。例如,网址看起来是这样的:domain.comcategoryfiltered。
当用户点击其中一个过滤器时,我目前的页面将过滤器添加到最后,相应的结构为。domain.com/category/filtered?filter=goods
通过使用pushState()函数,首先检查了一下 ?filter=
并不是已经可以通过做。
if(window.location.href.indexOf("=") > -1) {
window.history.pushState({}, window.location, "?filter=" + item.slug);
}
然而,我需要能够在最后添加额外的过滤器,这样url就会类似于: domain.com/category/filtered?filter=goods&services
我试图通过将附加参数推送到url上来实现。
else {
window.history.pushState({}, window.location, "&" + item.slug);
}
但这是无效的。
我怎样才能在当前url的末尾添加附加参数,使每个连续的过滤器都能像这样添加。&services&etc
在一个数组中存储项目,如 const filters = ['services', 'goods', 'etc']
. 您可以使用推送方法添加到它 filters.push('something')
而比使用 "?filter=" + fiters.join('&')
. 当您想清除阵列时,您可以使用 filters.length = 0
.