jqueryを使用してURLからパラメータを削除しようとしています。実際には、パラメータは動的に渡されなければならず、クリック時に親要素のテキストでなければなりません。その後、接頭辞を追加した後、私はそれを関数に渡す必要があります。以下に示す画像のようにパラメータを関数onclick jQueryに渡す
、誰かがクリアリンクをクリックしたときに、それはCOLORすなわちその見出しのタイトルからフィルタ名を取得し、いくつかの接頭辞を追加した後、js_を言って、その後に機能するには、このjs_colorを渡します。
これまでのところ、私はこのようなことをしましたが、うまくいかないようです。あなたは私を助けてくれますか?
おかげ
編集:私は手動でのparam値を渡すと
、それが正常に動作しています。
は作業:removeParam( "js_color"、URL)
はを動作しない:removeParam(パラメータ、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
私が手動でparamを渡すと、それはうまく動作しています – Rick
明らかに、 'param'はあなたが思うものではなく、再びコンソールにログインしようとしました。 – adeneo