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]

 

posted @   PromiseOne  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示