На самом деле все правильно возвращает. В каком браузере у вас не работает?
Не лучше ли так:
var list = document.getElementsByClassName('accordion')[0];
list.addEventListener('click', function(e) {
e.preventDefault();
e.target.nextElementSibling.classList.toggle('active');
});
А без classList никак? Я просто хотел разобраться в чем именно причина. Браузер хром, в edge проверил все тоже самое. Возвращает значение но без "", те это не строка если сравнить с помощью typeof.
dmitriyivvvv, можно и без classList, но не понимаю зачем. Для старых браузеров проще подключить полифиллы, а не писать в 5 раз больше кода на каждый чих.
dmitriyivvvv, className всегда возвращает строку. Можно еще получить ошибку и undefined, если обратиться не к DOM-элементу, например. Но мне не удалось повторить. В каком браузере у вас оно не работает?
Stalker_RED, Все оказалось гораздо проще, свойство действительно возвращало строку, я пропустил присваивание из-за этого значение переменной не изменялось.