JavaScript If/Else
我想知道如何让我的javascript为经理显示不同的结果。我有两个If语句,但它只显示两个条件中的一个JavaScript If/Else,javascript,Javascript,我想知道如何让我的javascript为经理显示不同的结果。我有两个If语句,但它只显示两个条件中的一个 numberOfHoursWorked = parseFloat(numberOfHoursWorked); basePayRate = parseFloat(basePayRate); if (jobCategorySelectedIndex == 1) { txtnumberOfHoursWorked = 50; hourlyPayRate = 20; jobC
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 40;
}
else (jobCategorySelectedIndex == 1); {
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 10;
}
这是总体结构:
if (condition) {
// do this if condition is true
} else {
// do this if condition is false
}
没有直接针对else
的条件,因为只有当if
条件为false时,才会执行该条件。或者,您可以执行以下操作:
if (condition) {
// do this if condition is true
} else if (condition) {
// do this if first condition is false and this condition is true
} else {
// do this if first and 2nd condition are both false
}
但即使你这样做了(稍微改变一下你的例子)
这是没有意义的,因为这两个条件是相同的。要么第一个会触发,要么第二个不会触发,否则两个都不会触发
然后您发表了以下评论:
当我将第二个条件从else改为if时,它仍然只是 显示txtnumberOfHoursWorked=10的第二条if语句 好的,现在你有了这个:
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 40;
}
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 10;
}
这两个条件完全相同,因此它们都被执行。您有相同的变量被分配,但是有不同的值。因此,第二个代码块中的代码将覆盖第一个代码块。看看你的两个条件:它们是相同的
我想这可能就是您所追求的,尽管我不确定您为什么要为代码块中的jobCategorySelectedIndex
赋值。Esp是第一个代码块,因为为了使条件为真,它已经具有值1
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- this is unecessary
hoursEligibleForBasePay = 40;
} else { // <-- this gets executed if jobCategorySelectedIndex does not equal 1
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- are you sure you want to do this??
hoursEligibleForBasePay = 10;
}
numberOfHoursWorked=parseFloat(numberOfHoursWorked);
basePayRate=parseFloat(basePayRate);
如果(jobCategorySelectedIndex==1){
txtnumberOfHoursWorked=50;
小时支付率=20;
jobCategorySelectedIndex=1;//else
没有与之直接关联的条件,因为如果if
条件为False,则执行该条件。当我将第二个条件从else更改为if时,它仍然只显示txtnumberOfHoursWorked=10的第二个if语句:(我更新了我的答案以回应你的评论
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- this is unecessary
hoursEligibleForBasePay = 40;
} else { // <-- this gets executed if jobCategorySelectedIndex does not equal 1
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- are you sure you want to do this??
hoursEligibleForBasePay = 10;
}