[英]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.