Работа с циклом for
Здравсвуйте, подскажите пожалуйста, почему alert в цикле for не отрабатывает.
<ul id="lists-r1"> <li class="list-r1">Alcohol And Drugs</li> <li class="list-r1">Becoming Familiar With Your Vehicle</li> <li class="list-r1">Defensive Driving Techniques</li> <li class="list-r1">Driving In Bad Weather</li> <li class="list-r1">Driving Privileges</li> <li class="list-r1">Laws And Rules Of The Road</li> <li class="list-r1">Road Rage</li> <li class="list-r1">Seat Belts</li> <li class="list-r1">Sharing The Road</li> <li class="list-r1">Signs, Signals, and Markings</li> <li class="list-r1">Space Management</li> </ul> function getPlay(_timeDelay, _timeSpeed, _timeOpacity) { this.timeDelay = _timeDelay; this.timeSpeed = _timeSpeed; this.timeOpacity = _timeOpacity; this.arrCoords = [1,2]; }; getPlay.prototype.getPosition = function() { this.li = document.getElementsByClassName('list-r1'); for(var i = 0; i <= this.li; i ++) { alert("1") } }; var obj = new getPlay(10, 20, 30); obj.getPosition(); |
Скажите, что больше, "килограмм" или "зелёный"?
|
Цитата:
|
this.li = document.getElementsByClassName('list-r1'); for(var i = 0; i <= this.li; i ++) во первых. getElementsByClassName - не кросбраузерно и исспользование не желательно во вторых. i <= this.li - wtf? i меньше или равно массив?)) |
Цитата:
|
я бы на вашем месте сделал бы this.li = document.getElementById('lists-r1').getElementsByTagName('li');
|
Для обхода коллекции элементов лучше использовать следующий код
for ( var i = 0; this.li[i]; i++ ) { } Так коллекция элементов не является массивом, а является объектов, и в IE свойство length может возращать элемент коллекции. |
Цитата:
|
<div> <input type="text" name="a"/> <input type="text" name="b"/> <input type="text" name="length"/> </div> var inp = document.getElementsByTagName("input"); alert(typeof inp.length); |
ы туплю
|
Часовой пояс GMT +3, время: 00:08. |