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 @ 2024-01-22 11:16  PromiseOne  阅读(136)  评论(0编辑  收藏  举报