Javascript 为什么循环中使用[i]的值未定义?
使用Mozilla jetpack,当我执行以下代码时。。我知道链接是未定义的!!!为什么?或者如何修复它Javascript 为什么循环中使用[i]的值未定义?,javascript,for-loop,firefox-addon,firefox-addon-sdk,Javascript,For Loop,Firefox Addon,Firefox Addon Sdk,使用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.notification
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);
var links=doc.querySelectorAll('courses\u menu>ul>li>a');
var linkz=links[1]。href.split(“?”);
var i=0;
对于(i=0;i,因为循环结束时它超出范围
所以你应该
var linking;
for (i=0;i<=4;i++)
{
linking= links[i];
}
var链接;
对于(i=0;iThank youuu..你是对的..我简直不敢相信这没有在我的脑海中出现!据我所知,或者我的自发测试。Javascript maintins是函数作用域,而不是块作用域。在函数返回之前,在for循环中声明的任何变量都可以被函数的其余部分访问。@seanmonster:如果你在for循环的或中声明它(例如,for(var i..
),它只存在于for循环中。嗯,不存在。Javascript只使用函数作用域。请尝试:
var linking = "";
for (i=0;i<=4;i++)
{
linking = linking + links[i] + " ";
}