How array convert to nodelist?
Ну блин, гениально.
У вас lis это... интрига... HTMLLIELEMENT. 
Чему удивлятся, если lis[I] = underfined?
Две итерации он проходит. 
На 3-ей lis[i] = undefined,- поэтому и выстреливает эта ошибка. 
[ul.techersRightPic, ul.techersRightPic, ul.techersRightPic, ul.techersRightPic]
2016-07-31 17:40:55.303 main.js:273 [li, li, li]
2016-07-31 17:42:16.088 main.js:263 [ul.techersRightPic, ul.techersRightPic, ul.techersRightPic, ul.techersRightPic]
2016-07-31 17:42:22.841 main.js:273 [li]
Попробовал в этой же строке добавить lis[0] в uls[0],- отработало штатно. Значит код сам по себе рабочий.  Отсюда: наиболее вероятная причина ошибки в индексам,- выход за пределы диапазона. Ставьте точку останова и смотрите на каком этапе код попробует выбрать недопустимые значения