вопрос возник
<script>
window.onload = function(){
//в случае с div
alert(document.getElementById('test').childNodes.length);//в IE - 3, в FF - 5 т.к. DOM не нормализован
//здесь вроде все понятно
//FireBug показывает для document.getElementBiId('test').childNodes:
//<TextNode textContent="\n ">
//div
//<TextNode textContent="\n">
//span
//<TextNode textContent="lala\n">
//
var myForm = document.getElementById('myForm');
alert(myForm.childNodes.length);//9 в FF, 15?? в IE
for (var i = 0; i < myForm.childNodes.length; i++)
alert(myForm.childNodes[i].tagName);
//в IE
// INPUT
// undefined
// /INPUT
// undefined
// INPUT
// undefined
// /INPUT
// INPUT
// undefined
// /INPUT
// undefined
// INPUT
// undefined
// /INPUT
// undefined
//=> IE воспринимает теги input как два отдельных элемента Dom?,
// т.е. всю вот эту штуку: <input type="radio" name="na">1</input>
//как 3 отдельных элемента DOM: 2 объекта Element и один textNode между ними?
// тогда почему есть еще undefined после /INPUT??
//FF, получается, 'показывает' один input и следующий за ним текстовый узел
//Ie - 3 узла, но ни в одном случае, текстовый узел не является вложенным
}
</script>
<body>
<form id="myForm" action="#">
<input type="radio" name="na">1</input>
<input type="radio" name="na">2</input><input type="radio" name="na">3</input>
<input type="radio" name="na">4</input>
</form>
<div id="test">
<div>parampampam</div>
<span></span>lala
</div>
</body>