javascript - else if 不打印控制台值

标签 javascript html jquery css jquery-events

我有显示多种咖啡值的 JavaScript 代码。 如果我试图显示单值咖啡,它不会进入 else if。 我修改了现有代码但出现未定义错误。 你能告诉我如何解决吗?

var multCoffees = false;
var singleCoffee = false;
if (Coffees.length > 1) {
    multCoffees = true;
}
if (Coffees.length > 1) {
    singleCoffee = true;
}
if (apptTimeCell) {
    apptTimeHTML = MyDay.dish(allData, multCoffees, singleCoffee);
    apptTimeCell.innerHTML = apptTimeHTML;
} else {
    apptTimeCell = Util.cep("span", {
        className: "appt-time"
    });
    patientRowTD.insertBefore(apptTimeCell, patCell);
}
dish: function (allData, multCoffees, singleCoffee) {
    if (multCoffees) {
        var htmlArr = [];
        htmlArr.push(allData.APPT_TIME_DISPLAY, "<br/><span class='sub-detail'>", allData.MNEMONIC, "</span>");
        console.log("multiCoffee" + allData.PROVIDER_MNEMONIC);
        return htmlArr.join("");
    } else if (singleCoffee) {
        console.log("inside if" + allData.PROVIDER_MNEMONIC);
        var htmlArr = [];
        htmlArr.push(allData.APPT_TIME_DISPLAY, "<br/><span class='sub-detail'>", allData.PROVIDER_MNEMONIC, "</span>");
        console.log("singleCoffee" + allData.PROVIDER_MNEMONIC);
        return htmlArr.join("");
    } else {
        return allData.APPT_TIME_DISPLAY;
    }
},

工作代码:

var multCoffees = false;
if (Coffees.length > 1) {
    multCoffees = true;
}
if (apptTimeCell) {
    apptTimeHTML = MyDay.dish(allData, multCoffees);
    apptTimeCell.innerHTML = apptTimeHTML;
} else {
    apptTimeCell = Util.cep("span", {
        className: "appt-time"
    });
    patientRowTD.insertBefore(apptTimeCell, patCell);
}
dish: function (allData, multCoffees) {
    if (multCoffees) {
        var htmlArr = [];
        htmlArr.push(allData.APPT_TIME_DISPLAY, "<br/><span class='sub-detail'>", allData.MNEMONIC, "</span>");
        console.log("multiCoffee" + allData.PROVIDER_MNEMONIC);
        return htmlArr.join("");
    } else {
        return allData.APPT_TIME_DISPLAY;
    }
},

最佳答案

假设 Coffees.length 是 2。你这样做......

if (Coffees.length > 1) {
    multCoffees = true;
}

...和 ​​2 > 1,所以现在 multCoffees 为真,但随后您执行此操作,它会检查相同的事情...

if (Coffees.length > 1) {
    singleCoffee = true;
}

并且,由于 2 > 1 仍然存在,现在 multCoffee 和 singleCoffee 都为真。所以当你尝试做的时候

if (multCoffees) {
   ...
} else if (singleCoffee) {
   ...
}

第一个 if 分支为 true,因此它被执行,else 分支因此被忽略(尽管也为 true)。您可能打算从

开始
if (Coffees.length == 1) {
    singleCoffee = true;
} else if (Coffees.length > 1) {
    multCoffees = true;
}

关于javascript - else if 不打印控制台值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151045/

相关文章:

html - 如何在第一个字符之前按字母顺序从上到下排列名称

javascript - JQuery 星级评分插件和 Ajax 的问题

javascript - 无法看到 cropper js 的预览

javascript - 使用 JSONP 在 javascript 小部件中导航

javascript - 搜索一种用另一个值替换 test 的方法

HTML Doctype 是第一件事吗?

javascript - 通过白名单实现 SQL 安全

html - 媒体查询覆盖背景图片

javascript - Bootstrap checkbox 和 radio input with font-awesome

jquery - FancyBox 根本不工作