因为我有很多if else语句用于唯一的id,所以我想将代码更改为switch/case。在开关做了一些研究之后,我现在明白了一点。虽然我不能得到我应该如何改变这功能开关:将大量的if else转换为小代码的开关/ case
window.onload = function() {
function check() {
if (document.querySelector('#switch-wrapper-1 input').checked) {
document.querySelector('#switch-wrapper-1 p').textContent = "Disabled";
$('#card-1').addClass('card-disabled');
} else {
document.querySelector('#switch-wrapper-1 p').textContent = "Visible";
$('#card-1').removeClass('card-disabled');
}
if (document.querySelector('#switch-wrapper-2 input').checked) {
document.querySelector('#switch-wrapper-2 p').textContent = "Disabled";
$('#card-2').addClass('card-disabled');
} else {
document.querySelector('#switch-wrapper-2 p').textContent = "Visible";
$('#card-2').removeClass('card-disabled');
}
if (document.querySelector('#switch-wrapper-3 input').checked) {
document.querySelector('#switch-wrapper-3 p').textContent = "Disabled";
$('#card-3').addClass('card-disabled');
} else {
document.querySelector('#switch-wrapper-3 p').textContent = "Visible";
$('#card-3').removeClass('card-disabled');
}
}
document.getElementById('input-1').onchange = check;
document.getElementById('input-2').onchange = check;
document.getElementById('input-3').onchange = check;
check();
}
我会尽量展示我如何排序的做到这一点,所以你会更好地了解我想要的想象:
window.onload = function(){
function check(){
var switchWrapper = document.querySelector('.switch-wrapper input').checked; // Overall class for all inputs
switch(scenario){
case 0:
document.getElementById("switch-wrapper-1 input").textContent = "Disabled";
break;
case 1:
document.getElementById("switch-wrapper-2 input").textContent = "Disabled";
break;
case 2:
document.getElementById("switch-wrapper-3 input").textContent = "Disabled";
break;
default:
document.getElementsByClassname("switch-wrapper input").textContent = "Enabled";
}
}
document.getElementById('switch-wrapper-1 input').onchange = check;
document.getElementById('switch-wrapper-2 input').onchange = check;
document.getElementById('switch-wrapper-3 input').onchange = check;
check();
}
这绝对不是它应该如何工作的,但如果有人能更正或作出一些作品也将是巨大的
我在这里做一个小提琴https://jsfiddle.net/4heoz0nd/
是唯一一个允许检查或选项的任何数量的允许? – NoOorZ24
看起来有三种不同的if-else条件。所以我想它可以使用if-else条件。要使用开关盒,应该有一个if-else梯子。 –
Tbh如果我正确理解你的想法,我不认为用开关重写它会更好。如果你为单个值进行切换,但在你的代码中,它会像case cond1 && cond2:; case cond1 &&!cond2; case!cond1 && cond2;等等。这将导致非常混乱的代码。 –