问题描述
- function getElementsByClassName(node,classname)函数
-
请教各位老师在这个函数中
function getElementsByClassName(node,classname){
if(node.getElementsByClassName){
return node.getElementsByClassName(classname);
} else {
var results=new Array();
var elems=node.getElementsByTagName("*");
for(var i=0; i<elems.length; i++) {
if(elems[i].className.indexOf(classname) !=-1) {
results[result.length]=elems[i];
}
}
return results;
}
}
为什么 results[result.length]=elems[i];这一句results的中括号中是result.length,
result数组的个数。请老师指教,万分感谢!
解决方案
应该是写错了,results[result.length]应该是results[results.length]是带s的。
初始result.length等于0
results[0]刚好是第一个
如果results放入一个数后,result.length就是1
如果放入下一个数,刚好是results[1],也就是results[result.length]
解决方案二:
results[result.length]=elems[i];首先result.length 改成results.length
因为数组是从0开始的,而results.length 是长度总是比数组位数大1,所以这样results[result.length]=elems[i]是一个往数组最后一位加上一个元素
解决方案三:
谢谢老师的指教,非常感谢!
时间: 2024-09-12 08:53:41