Остерегайтесь то, что вы заявляете, не соответствует действительности в IE.В IE ваш код показывает 4 дочерних узла.Это связано с тем, что IE не считает пробелы как узлы, а Mozilla, Chrome и Safari делают.
Как сказал Пойнти, пробелы - это узлы во всех кроме IE, поэтому пробел после ul и 4 li - это 5 узловиз пробелов + 4 узла из li = 9 узлов.
Если вы хотите только узлы LI:
document.getElementById("nav").getElementsByTagName("li").length
В ответе выше показано 4.И он работает одинаково во всех браузерах.
Если вам необходимо использовать все дочерние узлы, просто игнорируйте узлы типа 3 (текст и, следовательно, пробелы) и сконцентрируйтесь на узлах типа 1 (узлы элементов).