Javascript 根据复选框更改href

Javascript 根据复选框更改href,javascript,jquery,Javascript,Jquery,我写了一个小脚本,它应该根据激活的复选框更改URL。这里的“问题”是有一些特殊情况,当href为“一、二、三”时,变量“一”和“二”有一个逗号,但是如果只选中复选框“二”,href也应该是“二”,而不使用逗号。我通过slice函数或多或少地实现了这一点 是否有更好的方法将其写入函数并保存x行代码 演示: var one=“111”; var two=“222”; var-three=“333”; $('body')。追加('')//这是默认值 $('.checkbox').change(函数()

我写了一个小脚本,它应该根据激活的复选框更改URL。这里的“问题”是有一些特殊情况,当href为“一、二、三”时,变量“一”和“二”有一个逗号,但是如果只选中复选框“二”,href也应该是“二”,而不使用逗号。我通过slice函数或多或少地实现了这一点

是否有更好的方法将其写入函数并保存x行代码

演示:

var one=“111”;
var two=“222”;
var-three=“333”;
$('body')。追加('')//这是默认值
$('.checkbox').change(函数(){
如果($('one')。是(':checked'){//one only+切掉最后一个字符(逗号)
$(“a”).attr(“href”,一个.slice(0,-1));
}
如果($('one').is(':checked')&&('two')。is(':checked')){//one和two
$(“a”).attr(“href”,一加二);
}
如果($('one').is(':checked')&&('third')。is(':checked')){//1和3
$(“a”).attr(“href”,一加三);
}
如果($('#two').is(':checked'){//two only+切掉最后一个字符(逗号)
$(“a”).attr(“href”,两个.slice(0,-1));
}
如果($('two')是('checked')&&('twree')。是('checked')){//two和twree
$(“a”).attr(“href”,2+3);
}
如果($('#三')。是(':checked'){//three only
$(“a”).attr(“href”,三个);
}
如果($('.'one')是(':checked')&&&('.'two')。是(':checked')&&&('.'twree')。是(':checked')){//three only
$(“a”).attr(“href”,1+2+3);
}
});
类似的东西。。。 见:

像这样的事。。。 见:

像这样的事。。。 见:

像这样的事。。。 见:


这是我想出的一个可行的答案——你只是把逗号硬编码到字符串中,把它复杂化了。只需检查是否每一个都已检查,如果已检查,则检查是否已经检查过一个。如果是,请添加逗号,然后添加选中的值。在三个if语句之后,您将拥有您的字符串

var one ="111";
var two ="222";
var three ="333";

$('body').append('<a href=\"' + one + "," + two + "," + three + '\">link</a>'); //this is the default value

$('.checkbox').change(function() {
    var href = "";
    if ($('#one').is(':checked')) {
        href = one;
    }
    if ($('#two').is(':checked')) { 
        href += (href != "") ? "," + two : two;
    }
    if ($('#three').is(':checked')) {
        href += (href != "") ? "," + three : three;
    }
    $("a").attr("href", href);
});
var one=“111”;
var two=“222”;
var-three=“333”;
$('body')。追加('')//这是默认值
$('.checkbox').change(函数(){
var href=“”;
如果($('#一')。是(':checked')){
href=1;
}
如果($('#two')。是(':checked'){
href+=(href!=)?,“+2:2;
}
如果($('#三')。是(':checked')){
href+=(href!=)?,“+three:three;
}
$(“a”).attr(“href”,href);
});

我想出了一个可行的答案——你只是把逗号硬编码到字符串中,把它复杂化了。只需检查是否每一个都已检查,如果已检查,则检查是否已经检查过一个。如果是,请添加逗号,然后添加选中的值。在三个if语句之后,您将拥有您的字符串

var one ="111";
var two ="222";
var three ="333";

$('body').append('<a href=\"' + one + "," + two + "," + three + '\">link</a>'); //this is the default value

$('.checkbox').change(function() {
    var href = "";
    if ($('#one').is(':checked')) {
        href = one;
    }
    if ($('#two').is(':checked')) { 
        href += (href != "") ? "," + two : two;
    }
    if ($('#three').is(':checked')) {
        href += (href != "") ? "," + three : three;
    }
    $("a").attr("href", href);
});
var one=“111”;
var two=“222”;
var-three=“333”;
$('body')。追加('')//这是默认值
$('.checkbox').change(函数(){
var href=“”;
如果($('#一')。是(':checked')){
href=1;
}
如果($('#two')。是(':checked'){
href+=(href!=)?,“+2:2;
}
如果($('#三')。是(':checked')){
href+=(href!=)?,“+three:three;
}
$(“a”).attr(“href”,href);
});

我想出了一个可行的答案——你只是把逗号硬编码到字符串中,把它复杂化了。只需检查是否每一个都已检查,如果已检查,则检查是否已经检查过一个。如果是,请添加逗号,然后添加选中的值。在三个if语句之后,您将拥有您的字符串

var one ="111";
var two ="222";
var three ="333";

$('body').append('<a href=\"' + one + "," + two + "," + three + '\">link</a>'); //this is the default value

$('.checkbox').change(function() {
    var href = "";
    if ($('#one').is(':checked')) {
        href = one;
    }
    if ($('#two').is(':checked')) { 
        href += (href != "") ? "," + two : two;
    }
    if ($('#three').is(':checked')) {
        href += (href != "") ? "," + three : three;
    }
    $("a").attr("href", href);
});
var one=“111”;
var two=“222”;
var-three=“333”;
$('body')。追加('')//这是默认值
$('.checkbox').change(函数(){
var href=“”;
如果($('#一')。是(':checked')){
href=1;
}
如果($('#two')。是(':checked'){
href+=(href!=)?,“+2:2;
}
如果($('#三')。是(':checked')){
href+=(href!=)?,“+three:three;
}
$(“a”).attr(“href”,href);
});

我想出了一个可行的答案——你只是把逗号硬编码到字符串中,把它复杂化了。只需检查是否每一个都已检查,如果已检查,则检查是否已经检查过一个。如果是,请添加逗号,然后添加选中的值。在三个if语句之后,您将拥有您的字符串

var one ="111";
var two ="222";
var three ="333";

$('body').append('<a href=\"' + one + "," + two + "," + three + '\">link</a>'); //this is the default value

$('.checkbox').change(function() {
    var href = "";
    if ($('#one').is(':checked')) {
        href = one;
    }
    if ($('#two').is(':checked')) { 
        href += (href != "") ? "," + two : two;
    }
    if ($('#three').is(':checked')) {
        href += (href != "") ? "," + three : three;
    }
    $("a").attr("href", href);
});
var one=“111”;
var two=“222”;
var-three=“333”;
$('body')。追加('')//这是默认值
$('.checkbox').change(函数(){
var href=“”;
如果($('#一')。是(':checked')){
href=1;
}
如果($('#two')。是(':checked'){
href+=(href!=)?,“+2:2;
}
如果($('#三')。是(':checked')){
href+=(href!=)?,“+three:three;
}
$(“a”).attr(“href”,href);
});

如果您愿意,我肯定会将复选框选项的
属性中的
href
值去掉。首先,您必须设置复选框以使值与之关联:

<input class="checkbox" id="one" type="checkbox" checked value="111">one<br />
<input class="checkbox" id="two" type="checkbox" checked value="222">two<br />
<input class="checkbox" id="three" type="checkbox" checked value="333">three<br />

如果您愿意,我肯定会将复选框选项的
属性中的
href
值去掉。首先,您必须设置复选框以使值与之关联:

<input class="checkbox" id="one" type="checkbox" checked value="111">one<br />
<input class="checkbox" id="two" type="checkbox" checked value="222">two<br />
<input class="checkbox" id="three" type="checkbox" checked value="333">three<br />

如果您愿意,我肯定会将复选框选项的
属性中的
href
值去掉。首先,您必须设置复选框以使值与之关联:

<input class="checkbox" id="one" type="checkbox" checked value="111">one<br />
<input class="checkbox" id="two" type="checkbox" checked value="222">two<br />
<input class="checkbox" id="three" type="checkbox" checked value="333">three<br />

如果您愿意,我肯定会将复选框选项的
属性中的
href
值去掉。首先,您必须设置复选框以使值与之关联:

<input class="checkbox" id="one" type="checkbox" checked value="111">one<br />
<input class="checkbox" id="two" type="checkbox" checked value="222">two<br />
<input class="checkbox" id="three" type="checkbox" checked value="333">three<br />

为什么不在复选框中设置一些数据并使用javascript连接函数呢?如果代码工作正常,那么就不需要所有这些条件了?为什么不在复选框中设置一些数据并使用javascript连接函数呢?有了这个