Почему переключение регистра в javascript не работает со строкой в ​​Microsoft Edge? - PullRequest
0 голосов
/ 01 октября 2018

Я реализовал javascript case switch. Этот чехол отлично работает в 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;
}

1 Ответ

0 голосов
/ 01 октября 2018

Проблема была в том, что значение свойства innerText в Chrome / Firefox отличалось от Edge.У Firefox / Chrome была innerText без пробелов на концах.Однако у свойства innerText в Edge в конце были пробелы.Поэтому я использовал labels[i].innerText.trim() вместо labels[i].innerText.

Редактировать: я использовал labels[i].textContent.trim(), как предложено @ Kaiido.

...