function abbrlist()
{
abbrs=document.getElementsByTagName("abbr");
var array1=new Array;
var array2=new Array;
for(var i=0;i<abbrs.length;i++)
{var text=abbrs[i].innerHTML;
var title=abbrs[i].getAttribute("title");
array1.push(text);
array2.push(title);
}
alert(array1.length);//显示竟然为0????
}
对应的html如下:
<abbr title="Oregon">OR</abbr>
......
不知道你哪里不对。我输出的是1,对的。
alert()
方法调用确实在函数内部。。。
数组长度为 0 可能的原因是,函数被执行时还没有任何 abbr
元素,例如在 head
中,或者这些元素是动态被创建的。
这排版也是醉了,你确定alert在function外?作用域内无array1,应该报ReferenceError错误才是。
定义数组的时候,试试使用 []
。
你不会是没有调用函数吧
测试过,弹出1,并无问题
题主快出来解释!已引起众多答主围观了! ̄へ ̄
alert 无法访问到 function 作用域内的变量。
另外,建议 function 在编写时遵循“单一职责”的原则。
这……居然改问题了……好吧,那请题主检查下原 HTML 代码中、javascript 代码或引用的 javascript 文件的位置是不是位于 HTML 结构下方吧。