使用JS获取页面上的所有标签
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使⽤JS获取页⾯上的所有标签
最近忙的⼀匹,忙着⼤保健,都来不及写博客,今天特意抽出点时间来写⼀写
前两天看到⼀个题,是问如何从页⾯上获取所有的标签的并查看他们的数量,感觉还是有点意思的,所以给⼤家来搞⼀下⼦
我们先来捋捋思路,那要从页⾯上获取标签,不⽤说我们肯定会想到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获取页⾯上的所有标签,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。