gpt4 book ai didi

javascript - 为什么 window.location.href.split ("?") 数组正在更改其值本身

转载 作者:行者123 更新时间:2023-12-03 01:58:07 27 4
gpt4 key购买 nike

我试图通过提供单选按钮的值作为 URL 中的查询参数,在单击单选按钮(城市列表)时重新加载页面。假设我当前的 URL 是

http://localhost:3001/offers?category=Dining&sub_categories=Home%20Delivery&city=

在选择任何单选按钮时,我希望将其值添加到 city URL 中的参数。所以所需的 URL 应该是

http://localhost:3001/offers?category=Dining&sub_categories=Home%20Delivery&city=Mumbai

但是问题是在修改URL时,sub_categories会自动被剥离,我得到的最终网址是这个。

http://localhost:3001/offers?category=Dining&city=Mumbai

这是我用于操作 URL 的代码:

$(document).on('click', '.city-selector' ,function(event) {
event.preventDefault() ;
var city_name = this.labels[0].textContent.trim().split("(")[0].trim() ;
var location_string = window.location['href'].split('?');
if(location_string.length > 1 && location_string[1].indexOf("city") > -1){
var all_params = location_string[1].split("&") ;
all_params.splice(all_params.indexOf("city=" + gon.selected_city), 1) ;
all_params.splice(all_params.indexOf("localities=" + gon.selected_localities), 1) ;
gon.selected_localities = '' ;
location_string[1] = all_params.join("&") ;
location_string[1] = location_string[1] + "&city=" + city_name ;
window.location.href = location_string[0] + "?" +location_string[1] ;
}

}) ;

提示:问题出在线上 location_string = window.location['href'].split('?');当我登录location_string时数组它不包含 sub_categories参数。
不知道是哪个东西把它剥离了。

最佳答案

我认为你应该使用正则表达式来替换url:

var url = 'http://localhost:3001/offers?category=Dining&sub_categories=Home%20Delivery&city=';

var cityName = 'Mumbai';
var cityParams = 'city=' + cityName;


var newUrl = url + '&' + cityParams;
if (url.indexOf('?') === -1) {
newUrl = url + '?' + cityParams;
} else if (url.indexOf('city=') > -1) {
newUrl = url.replace(/(city=[\w\d%_]*)/g, cityParams);
}

它也可以使用 url,例如: http://localhost:3001/offers?category=Dining?city=hanoi&sub_categories=Home%20Delivery

http://localhost:3001/offers

关于javascript - 为什么 window.location.href.split ("?") 数组正在更改其值本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50148467/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com