Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с циклом (https://javascript.ru/forum/misc/33275-pomogite-s-ciklom.html)

Zim_one 16.11.2012 20:44

Помогите с циклом
 
вот цикл:
window.onload=function aa(){
	var i = 0;
	while(i<=document.links.length){
		if(document.links[i].href=="http://www.droider.ru"){
			alert(i);
			break;
		}
		i++;
	}
}

вот страница
<body>

<a href="http://www.google.com">google1</a>
<a href="http://www.vk.com">vk2</a>
<a href="http://www.javascript.ru">javascript3</a>
<a href="http://www.droider.ru">droider4</a>

<div class="aa1">
<a href="http://www.keddr.com">keddr5</a>
	<div class="aa2">
		<a href="http://www.youtube.com">youtube6</a>
	</div>
</div>
<style>
.aa1
{
height:100px;
width:100px;
background-color:red;
}

.aa2
{
height:60px;
width:60px;
background-color:green;
}
</style>

</body>


Никак не могу понять, почему алерт не выводит число на котором остановился цикл (номер ссылки с адресом который указан в if())?
Цикл должен стартануть с i=0 и если первая ссылка не равна http://www.droider.ru то он должен продолжатся, а когда ссылка = http://www.droider.ru то должно появится окно в котором написан i (номер ссылки) и цикл должен остановится. по ничего не показывает. что не так?

a_l 16.11.2012 22:04

Zim_one, добавьте слэш в конец ссылки, т.е. чтоб было так:
if(document.links[i].href=="http://www.droider.ru/"){

Hoshinokoe 16.11.2012 22:04

Zim_one,

После домена в url должен быть слеш. Если ты его не указываешь, то браузер автоматом добавляет.

window.onload=function aa(){
	for(var i=0; i<document.links.length; i++){
		if(document.links[i].href=="http://www.droider.ru/"){
			alert(i);
			break;
		}
	}
}
<a href="http://www.google.com/">google1</a>
	<a href="http://www.vk.com/">vk2</a>
	<a href="http://www.javascript.ru/">javascript3</a>
	<a href="http://www.droider.ru/">droider4</a>


P.S. Пока писал ответ уже ответили.

Zim_one 16.11.2012 22:22

Всем спасибо. Но возник еще один вопрос.
window.onload=function aa(){
    for(var i=0; i<document.links.length; i++){
        if(document.links[i].href=="http://www.droider.ru/"){
            alert(i);
            break;
        }
    }
}
работает нормально, а
window.onload = function aa(){
	var i=0;
	while(i<=document.links.length){
		if(documen.links[i].href=="http://www.droider.ru/"){
			alert(i);
			break;
		}
		i++;
	}
}
нет. Почему?

bot87 16.11.2012 22:25

нужно писать
while(i<document.links.length){

a_l 16.11.2012 22:26

Нужно убрать очепятку:
if(document.links[i].href=="http://www.droider.ru/"){

Zim_one 16.11.2012 22:29

Спасибо... не заметил, пол дня бил голову что не так...

twolf 16.11.2012 23:35

чтоб полдня не бить голову, используйте утилиты вроде jslint, jshint или что угодно, что проверяет синтаксис.


Часовой пояс GMT +3, время: 22:23.