我正在使用一个脚本通过复选框输入音符选择(C,C#等)以查找和弦的名称。一个八度音阶可以完美地工作。
我有12个复选框,其中以以下字符串为例:
if (
cb[0].checked == true
&& cb[1].checked == false
&& cb[2].checked == false
&& cb[3].checked == false
&& cb[4].checked == true
&& cb[5].checked == false
&& cb[6].checked == false
&& cb[7].checked == true
&& cb[8].checked == false
&& cb[9].checked == false
&& cb[10].checked == false
&& cb[11].checked == false
) {
alert('C');
}
当选中C0,C4和C7框时,这很好用,当然,当选中其他任何组合时,也不能。
现在,我想添加一个额外的八度。我添加了第13个框(C12)作为C0的可选替代方案。
我尝试如下添加||
运算符:
if(cb[0].checked==true||cb[12]==true&&cb[1].checked==false...
但这不起作用。
奇怪的是,仅将框C12添加到页面中而根本不更改脚本字符串,当我选择框C12,C4和C7时,我得到的结果警报为'G♯/ A♭m',我只应该为此字符串:
else if (
cb[8].checked == true
&& cb[9].checked == false
&& cb[10].checked == false
&& cb[11].checked == true
&& cb[0].checked == false
&& cb[1].checked == false
&& cb[2].checked == false
&& cb[3].checked == true
&& cb[4].checked == false
&& cb[5].checked == false
&& cb[6].checked == false
&& cb[7].checked == false
) {
alert('G♯/A♭m');
}
我不理解,因为该字符串不包含cb [12],并且仅需要3个true
复选框中的2个。
有没有正确的方法可以添加此||cb[12]==true
线程,以便C0或C12获得相同的结果?
感谢您阅读这个冗长的问题!任何建议表示赞赏。