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]