JavaScript If/Else

JavaScript If/Else,javascript,Javascript,我想知道如何让我的javascript为经理显示不同的结果。我有两个If语句,但它只显示两个条件中的一个 numberOfHoursWorked = parseFloat(numberOfHoursWorked); basePayRate = parseFloat(basePayRate); if (jobCategorySelectedIndex == 1) { txtnumberOfHoursWorked = 50; hourlyPayRate = 20; jobC

我想知道如何让我的javascript为经理显示不同的结果。我有两个If语句,但它只显示两个条件中的一个

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;
    }