Работа с циклом 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); |
ы туплю
|
розовый слоник, IE6 - IE8
|
может в ие7 все что связанно с доком будет объектом?)
|
Цитата:
|
а точно)ну все равно как по мне просто забавная штука) я правда не могу понять почему это так происходит каким образом inp.length это <input type="text" name="length"/>
|
Kolyaj, у меня в IE9 возращает number( browser mode: IE9, document mode: IE9 standart )
|
и у меня в ие9 намбер
|
розовый слоник, потому что IE может возвращать элемет из коллекции по его имени либо id (может и другие браузеры, я знаю только за IE).
|
да и правда ие забавен вот только я невижу никакого применения эту на практике разве что писать чтото именно для ие но это бред)
|
и у меня в ie 9 number
Цитата:
|
Часовой пояс GMT +3, время: 07:17. |