一意のIDのためにif else文がたくさんあるので、コードをswitch/caseに変更したいと思います。スイッチでいくつかの研究をした後、私は今少しそれを理解しています。私はスイッチにこの機能を変更する必要がありますどのように取得することはできませんが:大量のifelsを小文字のswitch/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
3つの異なるif-else条件があるように見えます。ですから、if-else条件を使用するのはOKです。スイッチケースを使用するには、if-elseラダーが必要です。 –
Tbh私があなたの考えを正しく理解していれば、それをスイッチで書き換えるほうがよいとは思わない。単一の値を切り替えてもコードにはcase1と&cond2のようなものがあります。ケースcond1 &&!cond2;ケース!cond1 && cond2;非常に厄介なコードになるでしょう。 –