Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JQuery/Javascript中检查url是否包含字符串_Javascript_Jquery - Fatal编程技术网

如何在JQuery/Javascript中检查url是否包含字符串

如何在JQuery/Javascript中检查url是否包含字符串,javascript,jquery,Javascript,Jquery,我有一个带有多个选项的选择框,当用户单击某个选项时,我会在url中添加一个字符串,页面将刷新(使用字符串),从而将产品添加到购物车 我的问题是,如果用户单击一个选项,并且该字符串被附加到url,那么当页面刷新并选择另一个选项时,它就会继续添加字符串 这就是我的意思,我点击选择中的一个选项,它将自身附加到url“?添加到购物车=55”,当页面刷新时,该字符串仍在url中,但是如果我选择另一个选项,它将继续添加到url中,如下所示:"http://my-site.com?added-到购物车=55/

我有一个带有多个选项的选择框,当用户单击某个选项时,我会在url中添加一个字符串,页面将刷新(使用字符串),从而将产品添加到购物车

我的问题是,如果用户单击一个选项,并且该字符串被附加到url,那么当页面刷新并选择另一个选项时,它就会继续添加字符串

这就是我的意思,我点击选择中的一个选项,它将自身附加到url
“?添加到购物车=55”
,当页面刷新时,该字符串仍在url中,但是如果我选择另一个选项,它将继续添加到url中,如下所示:
"http://my-site.com?added-到购物车=55/?添加到购物车=2/?添加到购物车=100“
等等

我正在寻找一种方法来检查url中是否有字符串,如果是,则将其删除。因此,当他们选择新选项时,它将变成
”http://my-site.com/?added-到购物车=55“

以下是我一直在做的工作: 我不知道是否最好将下面的内容添加到我的select的click事件中,或者添加到
jQuery(document).ready(function($){});


jQuery(“着陆选择选项”)。单击(函数(){
$(“#产品表单”).submit();
window.location.href+=$(this.val();
});
jQuery(文档).ready(函数($){
//这就是我要寻找的字符串,并删除它?
var url=window.location.href;
url=url.split(“?”)[0];
window.history.pushState(“字符串”、“标题”、“新URL”);
});
因此,我的选项的值包含添加到购物车=…“部分。基本上,当用户单击一个选项时,我需要它将选项值添加到url中,这样做非常完美,然后页面会随着添加的产品而刷新,并且字符串仍在url中。我只需要一种方法来删除与添加到购物车的
”类似的任何现有字符串=“
当单击新选项(产品)时,它会将新字符串添加到url,并刷新以将产品添加到购物车,而不仅仅是继续向url添加字符串

我真的希望我在这里讲得有道理,看起来很基本,但我可能把这个问题弄糊涂了


谢谢

获取完整路径,然后检查“?”的位置

1) window.location.href或document.URL


2) indexOf()

您只需覆盖
位置。搜索
,而不是整个url:

jQuery("#landing-select option").click(function(){
   $('#product-form').submit();
   window.location.search = $(this).val();
});

这将只加载带有新查询字符串的给定url,而不管旧查询字符串是什么。

仅覆盖查询字符串。比如:


jQuery("#landing-select").change(function(){ //change is more appropriate than click
   jQuery('#product-form').submit();
   window.location.search = jQuery(this).val();
});

为什么在JavaScript代码中使用花哨的引号(
”)呢?应该是真正的引号-
啊,你太棒了!非常感谢你

jQuery("#landing-select").change(function(){ //change is more appropriate than click
   jQuery('#product-form').submit();
   window.location.search = jQuery(this).val();
});