remove URl filters
by Rick Sekhon
HTML
<div class="woof_container_inner woof_container_inner_color">
<h4>Color
<a href="javascript: void(0);" title="toggle"></a>
</h4>
</div>
<div class="woof_container_inner woof_container_inner_color">
<h4>Size
<a href="javascript: void(0);" title="toggle"></a>
</h4>
</div>
CSS
.woof_container_inner .clear_filters {
float: right;
display: inline-block;
text-transform: capitalize;
font-weight: 400;
font-size: 13px;
margin: 3px 30px 0 0;
position: relative;
z-index: 1;
}
JavaScript
$(document).ready(function() {
// Append Clear Link to element
$('.woof_container_inner h4').each(function(){
$(this).append('<a href="javascript:void(0)" class="clear_filters">Clear</a>');
});
// Extract parameter, pass it to function and generate new URL
$('.woof_container_inner h4').click(function(){
var url = "http://localhost/shop/?attribs=1&pa_size=l,s&pa_color=red,blue";
var prefix = ("pa_");
var key = $(this).clone().children().remove().end().text().toLowerCase();
var param = prefix + key;
var alteredURL = removeParam(param, url);
alert(param + url);
// window.location.href = alteredURL;
});
function removeParam(key, sourceURL) {
var rtn = sourceURL.split("?")[0],
param,
params_arr = [],
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
if (queryString !== "") {
params_arr = queryString.split("&");
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
param = params_arr[i].split("=")[0];
if (param === key) {
params_arr.splice(i, 1);
}
}
rtn = rtn + "?" + params_arr.join("&");
}
return rtn;
}
});