В Javascript вы не можете сравнивать переменную с switch
, но вы можете сделать это косвенно, поскольку ответ этого поста показывает: оператор переключения для сравнения значений, больших или меньших числа
С несколькими правками и добавлением html, чтобы проверить, все ли работает, вот как вы бы это сделали в вашем случае:
<!DOCTYPE html>
<html>
<body>
<p id="speechstat1"></p>
<p id="speechstat2"></p>
<p id="speechstat3"></p>
<script type="text/javascript">
var a = 34; //You can set this to whatever you want or a user's input
switch (true) {
case (a<33):
document.getElementById("speechstat1").innerHTML = "red works";
break;
case a>= 33 && a<= 66:
document.getElementById('speechstat2').innerHTML = "blue works";
break;
case a> 66:
document.getElementById("speechstat3").innerHTML = "green works";
break;
}
</script>
</body>
</html>
- Я вставил
.innerHTML
просто чтобы показать, как это работает, в вашем случае вы можете заменить те
линии с тем, что вы хотите, чтобы это произошло.
- Я изменил
Switch
на switch
- Я изменил
.getElementByID
на .getElementById
Правописание имеет значение!
- Если вы тестируете переменную для двух условий:
case >= 33 <= 66:
вы
нужно добавить оператор "и" case >= 33 **&&** <= 66:
- Я изменил
a[2]
на a
, чтобы он не выдавал ошибку, потому что он не назван
правильно
В целом проще использовать операторы if и else для чего-то подобного, как упоминал Морган Уайльд.