Дело в том, что
getElementsByTagName возвращает динамическую коллекцию элементов, т.е. такую, которая автоматически обновляется при добавлении/удалении элементов. Поэтому сейчас у вас происходит следующее: удалили элемент с индексом
0, и у всех остальных элементов изменился индекс на единицу вниз,
0 вместо
1,
1 вместо
2 и т.д. При этом счётчик цикла вы на единицу увеличили, так что на следующей итерации удаляете элемент с индексом
1 - бывший
2. А тот, который был
1 и стал
0 - его вы пропускаете. А после следующего удаления пропускаете ещё один. Ну и т.д. Каждый второй.
Какие тут есть варианты действий:
Ну и ещё кое-что. Обращаться к
body по id - безумие, этот элемент существует в единственном экземпляре и ссылка на него доступна как свойство объекта
document. Так что id уберите и замените
document.getElementById("body") на
document.body.