取出一个页面的HTML标签种类

从一个作业题开始:一个页面的所用HTML标签种类。
我的做法:

var dom = document.querySelectorAll("*"); //取出所有的标签
var str  = [];                             //建立一个数组装最后的标签
for(var i=0,len=dom.length; i

1. 取出所有HTML标签

取出所有的HTML元素,两种方式:
getElementsByTagName(" * ");
querySelectorAll(" * ");
用第一种方式取出的HTML标签会返回一个HTMLCollection对象,HTMLCollection对象提供了一些访问元素的方法,这不是重点,重点是通过这种方式查询的是动态的,并不是访问时所留下的一个快照。动态的还有nodeList对象。
在循环动态DOM时,在初始化时就应该把长度缓存下来,否则,每次循环都会去访问DOM,如果遇上,在循环里再添加一点这个元素,就会死循环了。

for(var i=0,len = div.length; i

用第二种方式返回的是一个nodeList实例,本来所有nodeList都是基于文档的实时查询,但是querySelectorAll是个例外,他的实现就是在访问时留下的一组快照。
示例:

1
2
3
4

你可能感兴趣的:(取出一个页面的HTML标签种类)