如何获取页面上的所有的标签元素?排除重复的。

Posted 喻平华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取页面上的所有的标签元素?排除重复的。相关的知识,希望对你有一定的参考价值。

这个问题应该这样比较好:如何统计页面上用了多少html标签元素。

这是我在知乎live上看到的问题,后来讨论了这个https://www.zhihu.com/question/53175578

很多人给出了答案,but,我思来想去也觉得很简单啊,写代码的时候发现完全不知如何下笔,还是菜啊- -!

比如我看到了一个回答 new Set($$("*").map(e => e.tagName)).size;是在控制台输出。可以得到总过用了多少html标签元素的个数。

我心想很简单啊,试试写在脚本里,发现错误 xx.map is a not function ,原来我尝试用的document.getElementsByTagName("*");获取的是一个名为HTMLCollection的集合,非真正意义上的数组,需要转换成数组才能使用。

 下面是我把集合元素的属性tagName提取出来的方法。

1         var nodelist = document.getElementsByTagName("*");
2         var arr = [];
3         for(var i=0; i<nodelist.length; i++){
4             arr.push(nodelist[i].tagName);
5         }
6         console.log(arr.filter((ele,pos,self) => self.indexOf(ele) == pos));
7         console.log(arr.filter((ele,pos,self) => self.indexOf(ele) == pos).length);
8 
9         // console.log(new Set(arr.map(e =>e.tagName)).size);

当然,至于啥性能我是没啥思考啦╮(╯_╰)╭

需要学习得很多,感谢前辈提供的经验!

以上是关于如何获取页面上的所有的标签元素?排除重复的。的主要内容,如果未能解决你的问题,请参考以下文章

JS如何获取页面内所有的<img>标签元素?

如何使用PHP从元素中获取包含内容的所有标签[重复]

php xpath如何从父元素内的多个元素中获取值

如何获取 Puppeteer 访问的页面的所有 DOM 元素上的所有事件 - 基本上是 getEventListeners

需要使用Jquery按元素名称获取标签名称[重复]

排除包含属性的元素及其所有子元素