Почему значение внутри цикла и использование [i] не определены? - PullRequest
0 голосов
/ 23 января 2010

используя Mozilla jetpack, когда я делаю следующий код .. я получаю, что ссылки не определены !!! Зачем ? или как это исправить?

var links = doc.querySelectorAll('#courses_menu > ul > li > a'); 
var linkz=links[1].href.split("?");

var i = 0;
for (i=0;i<=4;i++)
{
   var linking= links[i]; 
}
jetpack.notifications.show(" "+ linking); 

1 Ответ

0 голосов
/ 23 января 2010

Потому что когда цикл заканчивается, он выходит из области видимости.

Так что вы должны иметь

var linking;
for (i=0;i<=4;i++)
{
   linking= links[i]; 
}

Но, кроме того, что вы пытаетесь сделать здесь? Вы перезаписываете ссылки четыре раза. Вы хотите отобразить все ссылки? Если это так, вы можете объединить их как:

var linking = "";
for (i=0;i<=4;i++)
{
   linking = linking + links[i] + " "; 
}

Редактировать: комментаторы правы; Я забыл, что в Javascript нет блокового обзора. Это исправило ваш код? Я не могу себе представить, что это сделал. Единственное, о чем я могу думать, это то, что links[4] не определено, и тогда вы бы присваивали undefined linking.

В любом случае, я не могу удалить это, потому что оно было принято, но если кто-то еще придумает более полезный ответ, не стесняйтесь принять этот.

...