0

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); 
4

1 に答える 1

0

ループが終了するとスコープ外になるためです。

だからあなたは持っているべきです

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

しかしさらに、あなたはここで何をしようとしていますか?リンクを4回上書きします。すべてのリンクを表示しますか?もしそうなら、あなたはそれらを次のように連結することができます:

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

編集:コメント投稿者は正しいです。Javascriptにはブロックスコープがないことを忘れました。これでコードは修正されましたか?私はそれがしたとは想像できません。私が考えることができる他の唯一のことは、links[4]未定義であり、それからあなたはに割り当てるでしょundefinedlinking

とにかく、受け入れられたので削除することはできませんが、他の誰かがもっと役立つ答えを思いついた場合は、これを受け入れないでください。

于 2010-01-23T02:21:28.777 に答える