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;
		}		
    
});