我已经实现了javascript开关盒。这种开关盒在Chrome和Firefox中可以正常使用,而在Edge中则不能。是什么原因呢?
编辑:标签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;
}
答案 0 :(得分:1)
问题出在Chrome / Firefox和Edge中,innerText
属性值不同。 Firefox / Chrome的innerText
末尾没有空格。但是Edge的innerText
属性的末尾有空格。因此,我使用labels[i].innerText.trim()
而不是labels[i].innerText
。
编辑:我按照@Kaiido的建议使用了labels[i].textContent.trim()
。