Показать сообщение отдельно
  #37 (permalink)  
Старый 07.01.2011, 13:48
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от JSTalker
Ситуацию с циклом for: видимо есть какой то шаблон (каркас)
не знаю насколько корректно получилось, но как-то так:
for(<инициализация>;<условие>;<корректирование>){
//тело цикла
}

Цикл начинает работу (ищит следущий дочерний элемент e) с выражения x = e.firstChild, и работает до тех пор пока не получит значение null (как доберется до несущестующего элемента - e.lastChild+1)

Может этот вариант поможет понять:
<script type="text/javascript">
window.onload = function(){
    var element = document.getElementById('div'), //родительский элемент
        children = element.childNodes, //дочернии элементы
        i = children.length, array = []; //получаем количество элементов и создаем пустой массив
    if(element.hasChildNodes()) { //проверяем есть ли дочернии элементы
        while(i--){
            if(children[i].tagName != undefined) { //отбираем, только те которые не имеют значение undefined
                array.push(children[i].tagName + ': ' +children[i].innerHTML + '\n'); //добавляем в массив
            }
        }
    }
    alert(array.join(''));
};
</script>

<div id="div">
    <div>0</div>
    <div>1</div>
    <div>2</div>
</div>


тоже самое (без линих проверок), только пошустрей:
var element = document.getElementById('div').childNodes, i = element.length, array = [];

while(i--){
    array.push(element[i].nodeType == 1 ? element[i].innerHTML + '\n' : '');
}

alert(array.join(''));

Последний раз редактировалось monolithed, 07.01.2011 в 19:42.
Ответить с цитированием