使用JS获取页面上的所有标签


Posted in Javascript onOctober 18, 2018

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

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

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

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

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>Document</title>
</head>
<body>
 <ul></ul>
</body>
</html>
<script>
 var map = {};
 //采用递归调用的方法,比较方便和简单。
 function fds(node) {
  if (node.nodeType === 1) {
   //这里我们用nodeName属性,直接获取节点的节点名称
   var tagName = node.nodeName;
   //判断对象中存在不存在同类的节点,若存在则添加,不存在则添加并赋值为1
   map[tagName] = map[tagName] ? map[tagName] + 1 : 1;
  }
   //获取该元素节点的所有子节点
  var children = node.childNodes;
  for (var i = 0; i < children.length; i++) {
   //递归调用
   fds(children[i])
  }
 }
 fds(document);
 console.log(map)
</script>

总结

以上所述是小编给大家介绍的使用JS获取页面上的所有标签,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
Boostrap入门准备之border box
May 09 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
EasyUI创建对话框的两种方式
Aug 23 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 Javascript
微信公众号服务器验证Token步骤图解
Dec 30 Javascript
如何阻止移动端浏览器点击图片浏览
Aug 29 Javascript
springboot+vue实现文件上传下载
Nov 17 Vue.js
深入理解 Koa 框架中间件原理
Oct 18 #Javascript
JS实现十分钟倒计时代码实例
Oct 18 #Javascript
基于Vue实现可以拖拽的树形表格实例详解
Oct 18 #Javascript
JavaScript的词法结构精华篇
Oct 17 #Javascript
Javascript中parseInt的正确使用方式
Oct 17 #Javascript
教你如何编写Vue.js的单元测试的方法
Oct 17 #Javascript
详解vue如何使用rules对表单字段进行校验
Oct 17 #Javascript
You might like
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
用header 发送cookie的php代码
2007/03/16 PHP
php 删除cookie和浏览器重定向
2009/03/16 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
python监控键盘输入实例代码
2018/02/09 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python 字符串和整数的转换方法
2018/06/25 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
Python虚拟环境venv用法详解
2020/05/25 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
春节联欢晚会主持词范文
2014/03/24 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
就业协议书范本
2014/10/08 职场文书
学校国庆节活动总结
2015/03/23 职场文书
2016春节慰问信范文
2015/03/25 职场文书
违纪开除通知书
2015/04/25 职场文书
社区低保工作总结2015
2015/07/23 职场文书
python缺失值填充方法示例代码
2022/12/24 Python