问答详情
源自:2-6 编程练习

为什么两次返回值都是2?

var els=[];

 if(parent){

      var oParent=document.getElementById(parent);

      var lists=oParent.getElementsByTagName('*');       

      for(var i=0;i<lists.length;i++){

     if(lists[i].className==clsName){

         els.push(lists[i]);

         }

     }

        return els;

 }

 else{


 var listall=document.getElementsByTagName('*');

 for(var i=0;i<listall.length;i++){

     if(listall[i].className==clsName){

         els.push(listall[i]);

     }    

   }

      return els;

  }


提问者:慕粉4333379 2016-11-25 09:48

个回答

  • YEAHDDD
    2016-12-05 14:29:00

    课程的代码错了。请注意看,两次alert的长度都是len1的长度。

    var len1= getByClass('on','list');

         alert(len1.length);  // 结果等于2为正确

         var len2= getByClass('on');

         alert(len1.length);  // 结果等于3为正确

    将第二个alert内容改成len2.length即可。

  • 谢凌
    2016-11-28 09:00:01

    不知道哎,帮你顶上去。

    为什么两次返回值都是2?