for (i in ss.as) {
Вы не должны использовать цикл for...in
над массивом или, в данном случае, NodeList. Вы получите свойства, которые вам не нужны, например, item
и length
. Вы также не можете полагаться на предметы, возвращаемые в каком-либо конкретном порядке; очень вероятно, что по крайней мере ss.last
не будет тем, что вы ожидаете. Если это свойство, не относящееся к элементу, ss.old.style.display
определенно завершится с ошибкой, нарушив сценарий.
Правильный цикл для последовательности - это конструкция старой школы C:
for (var i= 0; i<ss.as.length; i++)
Кроме того, где вы связываете вызовы с goTo
? Если вы делаете это в цикле с функцией внутри вас, у вас также может возникнуть классическая проблема закрытия цикла. См. Например этот вопрос .