0
我想从jQuery中删除URL的参数。实际上,参数必须动态传递,并且应该是点击时父元素的文本。然后添加一个前缀后,我需要通过它的功能。将参数传递给函数onclick jQuery
如下面所示的图像,当有人点击了明确的联系,它提取过滤器的名字来自它的标题标题即COLOR,加入一些前缀后,说js_,然后通过这个js_color工作。
到现在为止,我已经做了这样的事情,但似乎并不奏效。你能帮我解决吗?
感谢
编辑:
如果我手动传递参数值的方式,这是工作的罚款。
工作:removeParam( “js_color”,URL)
不工作:removeParam(PARAM,URL)
小提琴:对于第一个参数https://jsfiddle.net/jz1dyh9r/
功能没有得到价值。
// Append Clear Link to element
$('.woof_redraw_zone .woof_container_inner h4').each(function(){
$(this).append('<a class="clear_filters">Clear</a>');
});
// Extract parameter, pass it to function and generate new URL
$('.woof_redraw_zone .woof_container_inner h4').click(function(){
var url = window.location.href;
var prefix = ("pa_");
var key = $(this).clone().children().remove().end().text().toLowerCase();
var param = prefix + key;
var alteredURL = removeParam(param, url);
console.log(removeParam(param, url));
// window.location.href = alteredURL;
});
//参考:Remove a parameter to the URL with JavaScript
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;
}
如果你记录'param'和'url',你会得到什么? – adeneo
如果我手动传递参数,它工作正常 – Rick
显然'param'不是你想象的那样,并且你是否尝试将它记录到控制台。 – adeneo