通过js或jquery更改a href参数

lkaoscv7  于 2021-09-08  发布在  Java
关注(0)|答案(2)|浏览(274)

我需要使用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将被覆盖(

zpf6vheq

zpf6vheq1#

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

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));
});
5kgi1eie

5kgi1eie2#

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

相关问题