Цитата:
другие аргументы будут |
Цитата:
В твоем же случае создается по обработчику на элемент. Причем со всеми недостатками eval'а. А также неявно создается несколько with(){} блоков, что тоже не есть гуд. |
Цитата:
|
Maxmaxmaxmaximus8, с forEach гениальный вариант! :)
<!DOCTYPE HTML> <html> <head></head> <body> <div class="a">Div 1</div> <div class="a">Div 2</div> <div class="a">Div 3</div> <div class="a">Div 4</div> <div class="a">Div 5</div> <script> var a = document.querySelectorAll('div.a'); [].forEach.call(a, function(e, i) { e.onclick = function() { alert('Элемент ' + i + ': ' + e.textContent); } }); </script> </body> </html> |
кококококомбо
<!DOCTYPE HTML> <html> <head></head> <body> <div class="a">Div 1</div> <div class="a">Div 2</div> <div class="a">Div 3</div> <div class="a">Div 4</div> <div class="a">Div 5</div> <script> var elements = [].slice.call(document.querySelectorAll('div.a')); var listener = function () { alert(elements.indexOf(this)) }; elements.forEach(function (element) { element.addEventListener('click', listener) }); </script> </body> </html> |
Maxmaxmaxmaximus8, а почему сразу не [].forEach.call? Или есть подвох?
|
Цитата:
|
danik.js, ай всё, протупил. :)
|
Цитата:
Цитата:
Так что юзаем мой вариант Array.apply(null, nodeList) :) |
я новичок в джаве --- подскажите чем плох мой код для такого случая?
<!DOCTYPE HTML> <html> <head></head> <body> <div class="a">Div 1</div> <div class="a">Div 2</div> <div class="a">Div 3</div> <div class="a">Div 4</div> <div class="a">Div 5</div> <script> var elem = document.getElementsByTagName('div'); var elements = []; for(var i=0; i<elem.length;i++){ var option = elem[i].getAttribute('class'); if(option=='a'){ elements.push(elem[i]); } } for(var j=0;j<elements.length;j++){ elements[j].onclick = function () { alert(elements.indexOf(this)); } } </script> </body> </html> |
Часовой пояс GMT +3, время: 22:09. |