Выдает ошибку при переборе .children. Что делать?
Замените

i < children.length

на

i < children.length - 1

А ещё - разберитесь, чем присваивание отличается от проверки на равенство (nodeName = 'P', ну да, ну да).
Почему не работает?Потому что у последнего элемента по определению не может быть следующего соседа. И если у вас не бесконечная страница, у вас всегда есть последний элемент.Что делать?Добавить дополнительную проверку, что следующий элемент существует.