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); } } В итоге алерт выдает пустату |
<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> |
Часовой пояс GMT +3, время: 11:54. |