此代码有效,并且每次都会警告变量。
var idNumber;
var elements;
var id;
var blockerIds=[];
var whileLoop=0;
while (whileLoop<112) {
elements=document.getElementsByName('bid');
id=elements[whileLoop].getAttribute('id');
blockerIds[whileLoop]=id;
alert(blockerIds[whileLoop]);
whileLoop++;
}
但是我尝试在while语句之外提醒它,如下所示:
var idNumber;
var elements;
var id;
var blockerIds=[];
var whileLoop=0;
while (whileLoop<112) {
elements=document.getElementsByName('bid');
id=elements[whileLoop].getAttribute('id');
blockerIds[whileLoop]=id;
whileLoop++;
}
alert(blockerIds);
但它只是说“未定义”。有谁知道我如何在while语句之外使用这个变量,或者看起来它应该可以正常工作?
答案 0 :(得分:1)
JSFiddle:link。修正了你的代码:
var idNumber;
var elements;
var id;
var blockerIds=[];
var whileLoop=0;
elements=document.getElementsByName('bid');
while ((elements.length >= 112 && whileLoop < 112) || (whileLoop < elements.length && elements.length <= 112)) {
id=elements[whileLoop].getAttribute('id');
blockerIds[whileLoop]=id;
whileLoop++;
}
alert(blockerIds);
答案 1 :(得分:0)
JS是一种解释型语言,当它运行时,它首先搜索var的所有定义,并给它们一个未定义的值。即使声称var具有实际值,在最终执行该行之前,仍将给出未定义的值。