Цитата:
другие аргументы будут |
Цитата:
В твоем же случае создается по обработчику на элемент. Причем со всеми недостатками 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, время: 05:18. |