通过JS或jquery更改a href参数



我需要使用jQuery或纯JS更改几个href参数。

<a href="market/pid=422&counturl=1&sizeurl=2" id="link2" target="_blank">Go!</a>

我试过

var x = "market/pid=422";
var counturl = "&counturl=1";
var sizeurl = "&sizeurl=2";
var result = x + counturl + sizeurl;
$('#link2').attr('href', result);
$('#size-m').on("click", function(e){
e.preventDefault();
size = 1.5;
var sizeurl = "&sizeurl=1.5";
$('#link2').attr('href', result);
});
$('#size-l').on("click", function(e){
e.preventDefault();
size = 2;
var sizeurl = "&sizeurl=2";
$('#link2').attr('href', result);
});
$('#countplus').on("click", function(e){
e.preventDefault();
count = 2;
var counturl = "&counturl=2";
$('#link2').attr('href', result);
});
$('#countminus').on("click", function(e){
e.preventDefault();
count = 1;
var counturl = "&counturl=1";
$('#link2').attr('href', result);
});

当我点击#size-m时,我会得到

<a href="market/pid=422&counturl=1&sizeurl=1.5" id="link2" target="_blank">Go!</a>

好的。然后我点击#countplus

<a href="market/pid=422&counturl=2&sizeurl=2" id="link2" target="_blank">Go!</a>

第一次点击#size-m被覆盖(

问题出在您的逻辑中,请尝试:

function getLink(count, size) {
return `market?pid=422&counturl=${count}&sizeurl=${size}`;
}
var count = 1;
var size = 2;
$('#size-m').on("click", function(e){
e.preventDefault();
size = 1.5;
$('#link2').attr('href', getLink(count, size));
});
$('#size-l').on("click", function(e){
e.preventDefault();
size = 2;
$('#link2').attr('href', getLink(count, size));
});
$('#countplus').on("click", function(e){
e.preventDefault();
count = 2;
$('#link2').attr('href', getLink(count, size));
});
$('#countminus').on("click", function(e){
e.preventDefault();
count = 1;
$('#link2').attr('href', getLink(count, size));
});

您没有更改events函数中的result变量,因此作为参数提供给attr的结果将与已声明的结果相同!

最新更新