【发布时间】:2021-06-30 01:44:45
【问题描述】:
我有一个函数,有一些 if...else 像这样:
function updateInputs(data) {
from = data.from;
to = data.to;
rangeInput = $(data.input);
if (rangeInput.hasClass('rangeSalary')) {
$inputFromSalary.prop("value", from);
$inputToSalary.prop("value", to);
} else if (rangeInput.hasClass('rangeAge')) {
$inputFromAge.prop("value", from);
$inputToAge.prop("value", to);
}
table.draw();
}
但是我需要添加更多的语句,所以我认为最好使用switch…case,所以我尝试这样做:
function updateInputs(data) {
from = data.from;
to = data.to;
rangeInput = $(data.input).hasClass('rangeSalary');
switch (rangeInput) {
case 'rangeSalary':
$inputFromSalary.prop("value", from);
$inputToSalary.prop("value", to);
break;
case 'rangeAge':
$inputFromAge.prop("value", from);
$inputToAge.prop("value", to);
break;
}
table.draw();
}
但它没有用。我错过了什么?
【问题讨论】:
-
1.
.hasClass()返回一个布尔值 2。rangeInput总是只会告诉你data.input是否有rangeSalary类。 -
“但我需要添加更多语句” - 它们总是采用相同的格式吗?该类由两部分组成,前缀
range和字段的“类型”(Salary,Age,...)?并且必须修改的字段始终具有前缀$inputFrom和$inputTo+ 字段的“类型”(Salary,Age,...)?它们总是全局变量还是这些字段最终是如何出现在这些变量中的? -> minimal reproducible example -
是的,它们总是采用相同的格式,它们非常相似并且总是有这个前缀。
标签: jquery if-statement switch-statement break