Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2013, 12:09
Аспирант
Отправить личное сообщение для BorodinKO Посмотреть профиль Найти все сообщения от BorodinKO
 
Регистрация: 31.03.2011
Сообщений: 47

Onclick в for
Надо вывести порядковый номер элемента при нажатии на него

<div class="tag">
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
</div>

Делаю так

t = document.getElementsByClassName('tag')[0].getElementsByTagName('a');
for(i=0;i<t.length;i++){
t[i].onclick = function(){
alert(i);
}
}

В итоге алерт выдает пустату
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2013, 13:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<div class="tag">
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
</div>
<script>
(function(){
    var wrapper = document.getElementsByClassName('tag')[0];
    var tags = Array.prototype.slice.call(wrapper.getElementsByTagName('a'));
    wrapper.onclick = function(event) {
        var index = tags.indexOf(event.target);
        if (index !== -1) {
            alert(index);
            event.preventDefault();
        }
    };
})();
</script>


либо ваш вариант, исправленный:

<div class="tag">
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
<a href="#">qwerty</a>
</div>
<script>
(function(){
    var wrapper = document.getElementsByClassName('tag')[0];
    var tags = wrapper.getElementsByTagName('a');
    for (var i = 0; i < tags.length; i ++) {
        tags[i].onclick = (function(i) {
            return function(event) { alert(i) };
        })(i);
    }
})();
</script>

Последний раз редактировалось danik.js, 11.02.2013 в 13:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка формирования onclick в IE Pavel2012 Internet Explorer 2 23.11.2012 18:06
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
Как избавиться от каскадного onclick? GydruS Events/DOM/Window 2 24.02.2011 11:54
onclick и <object> MCTrane Общие вопросы Javascript 3 23.12.2010 23:33
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01