js用前缀名查找class或id节点,js模糊查询某个dom节点
1 // 参数dom为html dom节点 2 // 参数key为需模糊查询的名称字段 3 function queryClassNode(dom, key) { 4 let collectArray = []; 5 for (let i = 0; i < dom.childNodes.length; i++) { 6 // 核心点 7 if (dom.childNodes[i].attributes && dom.childNodes[i].attributes["class"] && dom.childNodes[i].className.indexOf(key) !== -1) { 8 collectArray.push(dom.childNodes[i]); 9 } 10 if (dom.childNodes[i].childNodes.length > 0) { 11 let res = queryClassNode(dom.childNodes[i], key); 12 for (let k = 0; k < res.length; k++) { 13 collectArray.push(res[k]); 14 } 15 } 16 } 17 return collectArray; 18 }
1 // 参数dom为html dom节点 2 // 参数key为需查询的前缀名 3 function queryIdNode(dom, key) { 4 let collectArray = []; 5 for (let i = 0; i < dom.childNodes.length; i++) { 6 // 核心点 7 if (dom.childNodes[i].attributes && dom.childNodes[i].attributes["id"] && dom.childNodes[i].id.indexOf(key) !== -1) { 8 collectArray.push(dom.childNodes[i]); 9 } 10 if (dom.childNodes[i].childNodes.length > 0) { 11 let res = queryIdNode(dom.childNodes[i], key); 12 for (let k = 0; k < res.length; k++) { 13 collectArray.push(res[k]); 14 } 15 } 16 } 17 return collectArray; 18 }
1 console.log(queryIdNode(document.body, 'test')); // [span#test1, span#test2, span#test3] 2 console.log(queryClassNode(document.body, 'demo')); // [span.demo1, span.demo1, span.demo2]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现