簡體   English   中英

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

[英]How to check if url contains string in JQuery/Javascript

我有一個帶有多個選項的選擇框,當用戶單擊一個選項時,我在URL后面附加了一個字符串,頁面將刷新(帶有字符串),這會將產品添加到購物車。

我的問題是,如果用戶單擊一個選項並將該字符串附加到URL,則在刷新頁面並選擇另一個選項時,它只會繼續添加字符串。

這是我的意思,我單擊select中的一個選項,然后在頁面刷新時將其自身附加到URL "?added-to-cart=55" ,但是如果我選擇了該字符串,另一個選擇,然后它會像這樣繼續添加: "http://my-site.com?added-to-cart=55/?added-to-cart=2/?added-to-cart=100"和以此類推。

我正在尋找一種方法來檢查url中是否有字符串,如果是,則將其刪除,這樣當他們選擇一個新選項時,它將變成"http://my-site.com/?added-to-cart=55"

這是我一直在努力的事情:我不知道是否最好將以下內容添加到我選擇的jQuery(document).ready(function($){});的click事件中jQuery(document).ready(function($){});

<script type="text/javascript">
jQuery("#landing-select option").click(function(){
    $('#product-form').submit();
    window.location.href += $(this).val();



});

jQuery(document).ready(function($) {
    // This is what I have to look for the string and to remove it? 
    var url = window.location.href;
    url = url.split('?')[0];
    window.history.pushState(“string”, “Title”, “newUrl”);
});

</script>

因此,我的選項的值包含"?added-to-cart=…"部分。 基本上,當用戶單擊一個選項時,我需要它來將選項值添加到完美完成的url中,然后頁面刷新,其中添加了產品,並且字符串仍在url中。 我只需要一種方法,即可在單擊新選項(產品)時刪除類似於"?added-to-cart=" add "?added-to-cart="所有現有字符串,因此它將新字符串添加到url並刷新以將產品添加到購物車,而不是只需將字符串添加到url。

我真的希望我在這里說得通,似乎很基本,但是我可能已經把這個問題弄糊塗了。

謝謝

您只需要覆蓋location.search ,而不是整個URL:

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

不管舊的是什么,這只會使用新的查詢字符串加載給定的url。

獲取完整路徑,然后檢查“?”的位置

1)window.location.href或document.URL

2)indexOf()

僅覆蓋查詢字符串。 就像是:


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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM