javascript - 为什么 javascript 中的 switch case 不适用于 Microsoft Edge 上的字符串?

标签 javascript microsoft-edge

我已经实现了 javascript Switch case。这个 switch case 在 Chrome 和 Firefox 中完美运行,但在 Edge 中却不行。这是什么原因?

编辑:labels var 获取选中复选框的标签元素。

请查看以下代码。

    function getSelectedProducts() {
    var labels = document.getElementsByClassName("nf-checked-label");
    var selectedProducts = [false, false, false, false, false];
    for (i = 0; i < labels.length; i++) {
        switch (labels[i].innerText) {
            case 'Risk':
                selectedProducts[0] = true;
                break;
            case 'Incident':
                selectedProducts[1] = true;
                break;
            case 'Audit':
                selectedProducts[2] = true;
                break;
            case 'Compliance':
                selectedProducts[3] = true;
                break;
            case 'Hazard':
                selectedProducts[4] = true;
                break;
            default:
                console.log("no case matched");
        }
    }
    return selectedProducts;
}

最佳答案

问题在于 innerText 属性值在 Chrome/Firefox 中与 Edge 不同。 Firefox/Chrome 的 innerText 末尾没有空格。但是,Edge 中的 innerText 属性末尾有空格。因此,我使用 labels[i].innerText.trim() 而不是 labels[i].innerText

编辑:我按照@Kaiido 的建议使用了labels[i].textContent.trim()

关于javascript - 为什么 javascript 中的 switch case 不适用于 Microsoft Edge 上的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585741/

相关文章:

javascript - 正则表达式替换重复模式

javascript - javascript 中使用 this 和不使用 this 的对象的属性

javascript - 如何使 Chart.js 条形图保持在原来的位置

browser - 微软边缘浏览器。错误 SEC7117

用于 Chrome 以外的浏览器的输入[类型 ='date'] 的 CSS 样式

javascript - NodeJS 和 MongoDB。 POST 请求获取 404 代码

javascript - 在扩展 native 类的 ScalaJS 类中调用重载的 super 构造函数

php - 如果条件存在则打印数组

version - "edge"版本是什么意思?

html - 选择下拉菜单在 Microsoft Edge 浏览器中不起作用