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]