document.getElementsByTagName("*"); 可以运行,为什么会提示错误

时间:2022-09-03 19:02:35
             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)

12 个解决方案

#1


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

#2


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

#3


不是,代码完全和上面的一样

#4





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

#5


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

#6


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

是的,我在里面用了so,

#7


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

#8


把调用方法写在方法定义下面
我测了没问题


 
            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");

#9


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

#10


引用 9 楼 weilimicrver 的回复:
还有就是你的遍历错了
for( var k in tags)tags是数组
for( var k=0;k<tags.length;k++) 


或者可以用

#11


引用 10 楼 qinlei812810 的回复:
Quote: 引用 9 楼 weilimicrver 的回复:

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


或者可以用


或者可以直接把for 换成 foreach

#12


是我ie的问题

#1


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

#2


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

#3


不是,代码完全和上面的一样

#4





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

#5


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

#6


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

是的,我在里面用了so,

#7


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

#8


把调用方法写在方法定义下面
我测了没问题


 
            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");

#9


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

#10


引用 9 楼 weilimicrver 的回复:
还有就是你的遍历错了
for( var k in tags)tags是数组
for( var k=0;k<tags.length;k++) 


或者可以用

#11


引用 10 楼 qinlei812810 的回复:
Quote: 引用 9 楼 weilimicrver 的回复:

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


或者可以用


或者可以直接把for 换成 foreach

#12


是我ie的问题