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

Сообщение от DimonCry
не сразу в body), а в другом родительском диве
что за бред, излагайте свои мысли конкретней!
Обход дочерних элементов:
<script type="text/javascript">
window.onload = function(){
    var element = document.getElementById('div'), children = element.childNodes,  i = children.length;
    if(element.hasChildNodes()){
        while(i--){
            children[i].onclick = (function(i){
                return function(){
                    children[i].nodeType == 1 && alert(this.tagName + ':' + i);
                    return false;
                };
            }(i));
        }
    }
};
</script>

<div id="div">
    <a href="#">click1</a>
    <a href="#">click2</a>
</div>

Более упрощенный вариант:
<script type="text/javascript">
window.onload = function(){
    var children = document.getElementById('div').childNodes,  i = children.length;
    while(i--){
        children[i].onclick = (function(i){
            return function(){
                this.nodeType == 1  && alert(this.tagName + ':' + i);
                return false;
            };
        }(i));
    }
};
</script>

<div id="div">
    <a href="#">click1</a>
    <a href="#">click2</a>
</div>

Обход определенных дочерних элементов (упорядоченный nodeList):
<script type="text/javascript">
window.onload = function(){
    var children = document.getElementById('div').getElementsByTagName('a'),  i = children.length;
    while(i--){
        children[i].onclick = (function(i){
            return function(){
                alert(this.tagName + ':' + i);
                return false;
            };
         }(i));
    }
};
</script>

<div id="div">
    <a href="#">click1</a>
    <a href="#">click2</a>
</div>

Более упрощенный вариант обхода определенных дочерних элементов без возвращение индекса:
<script type="text/javascript">
window.onload = function(){
    var children = document.getElementById('div').getElementsByTagName('a'),  i = children.length;
    while(i--){
        children[i].onclick = function(){
            this.style.color = this.style.color != 'red' ? 'red' : '';
            return false;
         };
    }
};
</script>

<div id="div">
    <a href="#">click1</a>
    <a href="#">click2</a>
</div>

Или же выбрать элемент на котором произошло событие:
<script type="text/javascript">
window.onload = function(){
    var children = document.getElementById('div').getElementsByTagName('a'),  i = children.length;
    while(i--){
        children[i].onclick = function(event){
            var event = event || event.window, element = (event.target) ? event.target : event.srcElement;
            element.style.color = element.style.color != 'red' ? 'red' : '';
            return false;
        };
    }
};
</script>

<div id="div">
    <a href="#">click1</a>
    <a href="#">click2</a>
</div>

Последний раз редактировалось monolithed, 14.01.2011 в 21:39.
Ответить с цитированием