Работа с циклом 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, время: 08:28. |