Показать сообщение отдельно
  #6 (permalink)  
Старый 11.03.2010, 17:55
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

вопрос возник
<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>
Ответить с цитированием