最近忙的一匹,忙着大保健,都来不及写博客,今天特意抽出点时间来写一写

  前两天看到一个题,是问如何从页面上获取所有的标签的并查看他们的数量,感觉还是有点意思的,所以给大家来搞一下子

  我们先来捋捋思路,那要从页面上获取标签,不用说我们肯定会想到DOM操作,那获取到了之后呢,我们又不确定某个元素有没有子元素,那怎么办呢,这个时候我们肯定会想到递归啊

  那现在我们有了DOM操作和递归就好办了,就可以直接写代码了,下面是代码,写了注释,大家可以拉下去参考一下

  

 1 <!DOCTYPE html>
 2 <html lang="en">
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9 </head>
10
11 <body>
12     <ul></ul>
13 </body>
14
15 </html>
16 <script>
17     var map = {};
18     //采用递归调用的方法,比较方便和简单。
19     function fds(node) {
20
21         if (node.nodeType === 1) {
22             //这里我们用nodeName属性,直接获取节点的节点名称
23             var tagName = node.nodeName;
24             //判断对象中存在不存在同类的节点,若存在则添加,不存在则添加并赋值为1
25             map[tagName] = map[tagName] ? map[tagName] + 1 : 1;
26         }
27             //获取该元素节点的所有子节点
28         var children = node.childNodes;
29         for (var i = 0; i < children.length; i++) {
30             //递归调用
31             fds(children[i])
32         }
33     }
34     fds(document);
35     console.log(map)
36 </script>

转载于:https://www.cnblogs.com/suihang/p/9806352.html

如何用JS获取页面上的所有标签相关推荐

  1. 用JavaScript获取页面上被选中的文字的技巧

    这里介绍的一个小技巧是如何用JavaScript获取页面上被选中的文字的方法.最关键的JavaScript API是: event.selection = window.getSelection(); ...

  2. js setCapture() releaseCapture() 获取页面上发生的所有的事件

    setCapture() IE独有 div.setCapture() 这个div会获取页面上发生的所有的事件 捕获到自己身上来 div.releaseCapture() ;//清除 setCaptur ...

  3. 神策数据王磊:如何用 JS 实现页面录制与回放

    本文根据神策数据资深前端研发工程师王磊<如何用 JS 实现页面录制与回放>的直播整理而成.以下为正文: 一.业务背景 对于研发来说,总是需要处理一些线上问题.To B 和 To C 企业在 ...

  4. 原生js获取html元素高度,js获取页面及个元素高度、宽度的代码

    网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offs ...

  5. js 获取页面鼠标选中的文字

    js获取页面鼠标选中的文字,最主要的代码 event.selection = window.getSelection(); 页面代码 <div><p class="cont ...

  6. JS获取页面元素并修改

    //实现代码如下,非常简单<script>(function(){var ele = document.getElementsByTagName("ul"); //获取 ...

  7. js获取页面光标坐标(x轴y轴)

    问题详情 js获取页面光标坐标(x轴y轴) 解决方案 // 获取当前位置 getPosition() {setTimeout(() => {// 获取当前光标位置getSelection()co ...

  8. JS 获取url上的参数

    JS 获取url上的参数 – 实用 const url = decodeURI(decodeURI(window.location.href)) console.log(getQuery(url)); ...

  9. html 获得div的高度,如何用js获取div不确定的自适应高度(currentStyle与offsetHeight)...

    设计网页时,一些元素(如div)因显示的内容多少事先不确定,所以不能固定高度,也就是让它根据内容的多少自动调整高度,即自适应高度. 对于div元素不确定的自适应高度,如何用js获取当前高度呢?一般有两 ...

最新文章

  1. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术
  2. ESFramework网络通信框架介绍之(3)――消息处理器和处理器工厂
  3. IntelliJ IDEA 编译错误,提示 Compilation failed: internal java compiler error或java compiler failed
  4. swift -- 数组
  5. 无路可逃:Oracle 12.2 BigSCN新特性可能的DB Link兼容性问题
  6. 1.3、解析并创建ApplicationListener(ok)
  7. 实验:基于keepalived实现两台realserver服务器中的nginx和php-fpm服务互为主从
  8. 转件工程--实践者的研究方法阅读笔记1
  9. 交通灯c语言单片机程序,基于51单片机的一个简单交通灯程序
  10. python大数据之数据分割(含k折交叉验证)
  11. oracle的odac dll,.NET2.0中施用最少的ODAC动态库文件连接Oracle数据库
  12. 【渝粤题库】广东开放大学 期货与期权 形成性考核
  13. PDF编辑方法,怎么在PDF中添加图片
  14. 小胜凭智, 大胜靠德
  15. java的简单逻辑博彩游戏craps
  16. 今天是星期一,两天后是星期三,5天后是星期六;今天是星期六,3天后是星期二。
  17. 战国李悝的“识人五法
  18. iOS视频添加水印两种方式(不用到第三方框架)
  19. Android接入极光推送,接入华为,小米,OPPO,VIVO厂商通道
  20. SAP 银企直连 常用事务代码,表名,类名

热门文章

  1. K8S部署工具:KubeOperator集群部署
  2. Hadoop集群添加新节点正确操作步骤
  3. Python报错:IndentationError: unindent does not match any outer indentation level解决办法
  4. Python Django URL逆向解析(通过Python代码逆向访问)代码示例
  5. HDFS分布式文件系统理论知识
  6. Java中的同步集合与并发集合有什么区别?
  7. spring boot整合freemarker及freemarker基础语法超详细讲解
  8. 【比较面】真核生物和原核生物的异同
  9. 深入String、StringBuilder、StringBuffer
  10. matlab信息隐藏算法,实验四--基于DCT域的信息隐藏算法