我需要使用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
的结果将与已声明的结果相同!