Salve,
sul web ho trovato due funzioni, una mi aggiunge alla query string un parametro e l'altra la toglie. Un po di codice per capire meglio:
Html:
Queste due funzioni fanno il loro lavoro e cioè www.miosito.com?serv=1 se clicco sopra il link con la classe active elimina dalla query string serv=... se no lo modifica, invece io vorrei che cliccando sui link mi desse questo risultato www......com?serv=1,2,3 se clicco sul link con la classe active toglie dal parametro serv solo il numero che ho cliccato. Porto questo esempio: https://www.getyourguide.it/s?q=Milano&srv=prt|wca, in questo caso prt e wca sono separati da | ma fa lo stesso.codice HTML:<a href="#" class="servizio" data-id="1">1</a> <a href="#" class="servizio" data-id="2">2</a> <a href="#" class="servizio" data-id="3">3</a> function updateQueryStringParameter(uri, key, value) { var re = new RegExp("([?&])" + key + "=[^&#]*", "i"); if (re.test(uri)) { return uri.replace(re, '$1' + key + "=" + value); } else { var matchData = uri.match(/^([^#]*)(#.*)?$/); var separator = /\?/.test(uri) ? "&" : "?"; return matchData[0] + separator + key + "=" + value; } } function removeQueryStringParameter(uri, key, value){ var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); var separator = uri.indexOf('?') !== -1 ? "&" : "?"; if (uri.match(re)) { return uri.replace(re, ''); } } $('.servizio').click(function () { var servizio = $(this).data('id'); var href = $location).attr('href'); if($(this).parent().hasClass('active')){ var url = removeQueryStringParameter(href, 'serv', encodeURIComponent(servizio)); location.href = url; } else { var url = updateQueryStringParameter(href, 'serv', encodeURIComponent(servizio)); location.href = url; } });
Qualche consiglio?

Rispondi quotando