我已经实现了 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/