千家信息网

如何找到当前页面中出现次数最多的HTML标签

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍如何找到当前页面中出现次数最多的HTML标签,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这是一道前端基础与编程功底具备的面试题:如果你前端基础强会了解 doc
千家信息网最后更新 2026年11月01日如何找到当前页面中出现次数最多的HTML标签

这篇文章给大家介绍如何找到当前页面中出现次数最多的HTML标签,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

这是一道前端基础与编程功底具备的面试题:如果你前端基础强会了解 document.querySelector(*) 能够列出页面内所有标签,如果你编程能力强能够用递归快速实现同等的效果

> document.querySelectorAll('*')
< NodeList(593) [html, head, meta, meta, meta, meta, meta, meta, meta, title, link#favicon, link, link#MainCss, link#mobile-style, link, link, link, script, script, script, script, script, script, script, link, script, link, link, script, input#_w_brink, body, a, div#home, div#header, div#blogTitle, a#lnkBlogLogo, img#blogLogo, h2, a#Header1_HeaderTitle.headermaintitle.HeaderMainTitle, h3, div#navigator, ul#navList, li, a#blog_nav_sitehome.menu, li, a#blog_nav_myhome.menu, li, a#blog_nav_newpost.menu, li, a#blog_nav_contact.menu, li, a#blog_nav_rss.menu, li, a#blog_nav_admin.menu, div.blogStats, span#stats_post_count, span#stats_article_count, span#stats-comment_count, div#main, div#mainContent, div.forFlow, div#post_detail, div#topics, div.post, h2.postTitle, a#cb_post_title_url.postTitle2.vertical-middle, span, div.clear, div.postBody, div#cnblogs_post_body.blogpost-body, p, p, strong, p, p, p, strong, div.cnblogs_code, pre, span, span, span, span, span, p, span, strong, pre, strong, span, strong, br, br, br, div.cnblogs_code, pre, span, span, p, p, …]
[0 … 99]
[100 … 199]
[200 … 299]
[300 … 399]
[400 … 499]
[500 … 592]
__proto__: NodeList

使用 document.querySelectorAll 实现如下

const maxBy = (list, keyBy) => list.reduce((x, y) => keyBy(x) > keyBy(y) ? x : y)

function getFrequentTag () {
const tags = [...document.querySelectorAll('*')].map(x => x.tagName).reduce((o, tag) => {
o[tag] = o[tag] ? o[tag] + 1 : 1;
return o
}, {})
return maxBy(Object.entries(tags), tag => tag[1])
}

使用 element.children 递归迭代如下 (最终结果多一个 document)

function getAllTags(el = document) {
const children = Array.from(el.children).reduce((x, y) => [...x, ...getAllTags(y)], [])
return children
}

// 或者通过 flatMap 实现
function getAllTags(el = document) {
const children = Array.prototype.flatMap.call(el.children, x => getAllTags(x))
return [el, ...children]
}

关于如何找到当前页面中出现次数最多的HTML标签就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

标签 页面 次数 内容 前端 基础 更多 递归 帮助 编程 不错 一道 兴趣 功底 够用 小伙 小伙伴 效果 文章 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 易互联网科技有限公司 致骋互联网科技 互联网科技视频 中正互联网科技招聘 济南华为互联网科技产业总部基地 互联网科技热点资讯 阿里互联网科技公司 宁夏众和广鑫互联网科技有限公司 全球顶尖互联网科技公司 昭通互联网科技选哪家 青岛科技大学互联网大赛研究生 玉溪互联网科技怎么选 广州市恰铎互联网科技有限公司 互联网科技人工智能实验室 西安小鹰速贷互联网科技有限公司 恒生互联网科技业指数调整周期 珠海东科互联网科技有限公司 众联互联网络科技 株洲百竞科技的互联网营销顾问 华服互联网科技靠谱吗 互联网核心科技是什么 中国互联网科技发展 金融科技和互联网金融 金融科技与互联网金融相同和不同 互联网科技教育视频 徐州市互联网科技有限公司 互联网第三次科技革命特征 广州燕处互联网科技有限公司 易企秀互联网科技是做什么的
0