Кнопка-переключатель не работает
Где ошибка? При нажатии на кнопку одно предложение должно меняться на другое.
const switchers = document.querySelectorAll('.switcher');
const changeText = (switcher, lang) => {
const texts = switcher.querySelectorAll('span');
const sup = switcher.querySelector('sup');
texts.forEach(text => {
if (text.dataset.lang === lang) {
text.classList.remove('hide');
sup.innerText = text.dataset.lang;
switcher.dataset.langSelected = lang;
} else text.classList.add('hide');
})
};
const switchLanguage = switcher => {
const texts = switcher.querySelectorAll('span');
const textsArray = Array.prototype.slice.call(texts);
let lang = switcher.dataset.langSelected;
if (lang !== null) {
const textCount = texts.length;
const selectedText = switcher.querySelector('span[data-lang="' + lang + '"]');
const selectedIndex = textsArray.indexOf(selectedText);
if (textCount - selectedIndex === 1) lang = textsArray[0].dataset.lang;
else lang = textsArray[selectedIndex + 1].dataset.lang;
}
changeText(switcher, lang);
};
switchers.forEach(switcher => {
changeText(switcher, switcher.dataset.langDefault);
const sup = switcher.querySelector('sup');
sup.addEventListener('click', () => {
switchLanguage(switcher);
});
});
.switcher span {
font: 400 14px/18px Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
color: #062636;
}
.switcher sup {
background: #007fb2;
color: #fff;
border: 1px solid #007fb2;
text-indent: 0;
border-radius: 2px;
vertical-align: middle;
width: 15px;
height: 15px;
text-align: center;
font: 400 8px/15px Arial, 'Helvetica Neue', Helvetica, sans-serif;
cursor: pointer;
display: inline-block;
user-select: none;
}
.switcher sup:hover:before {
content: '\21C4';
width: 100%;
height: 100%;
font-size: 12px;
font-weight: bold;
display: block;
}
.switcher span.hide {
display: none;
}
<div>
<p>
</p>
<div class="switcher" data-lang-default="EN">
<sup>EN</sup>
<span data-lang="RU" class="hide"><font size="3"><em>Студент своевременно завершил проект.</em></font></span>
<span data-lang="EN"><font size="3"><em>The student put his project across timely.</em></font></span>
<p></p>
</div>