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