JavaScript
// 定义一个对象,用于存储每个标签的数量
var map = {};
// 采用递归调用的方法,比较方便和简单。
function fds(node) {
// 判断当前节点是否为元素节点
if (node.nodeType === 1) {
// 使用nodeName属性,直接获取节点的节点名称
var tagName = node.nodeName;
// 检查map中是否已经存在这个标签,若存在则数量加一,否则初始化为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);
jQuery 获取所有标签
// 使用jQuery的$("*")选择器表示获取页面中所有的标签
$("*");