getObjsByClass("shop-card");
            function  getObjsByClass (param) {
               var tags = tags || document.getElementsByTagName("*");
                var list = [];
              for( var k in tags)
                {
                    var tag = tags[k];
                    if(tag.className == param) {
                    so=tag.innerHTML;

                      
                    }
                }
             return list;
            }document.getElementsByTagName("*"); 可以运行,为什么会提示为空或不是对像(IE8)

解决方案 »

  1.   

     var tags = tags || document.getElementsByTagName("*");
    你这个地方的是不是想写成
     var tags = param || document.getElementsByTagName("*");
      

  2.   

    看错了,不好意思》
    现在有个疑问是,你在操作之后,并没有给list数组里面添加东西啊?
    不管怎么说,应该会返回一个空数组吧。
    我自己没有测试,只是看你的代码给我的这么个感觉。
      

  3.   


    for( var k in tags)
    for( var k=0;k<tags.length;k++)
      

  4.   

    是提示document.getElementsByTagName("*"); 为空或不是对像(IE8)
      

  5.   

    把代码放到window.onload里面或者放到页脚。
      

  6.   

    把调用方法写在方法定义下面
    我测了没问题
     
                function  getObjsByClass (param) {
                   var tags = tags || document.getElementsByTagName("*");
                    var list = [];
                  for( var k in tags)
                    {
                        var tag = tags[k];
                        if(tag.className == param) {
                        so=tag.innerHTML;                      
                        }
                    }
                 return list;
                }
    getObjsByClass("shop-card");
      

  7.   

    还有就是你的遍历错了
    for( var k in tags)tags是数组
    for( var k=0;k<tags.length;k++) 
      

  8.   


    或者可以用或者可以直接把for 换成 foreach