首页 > 其他分享 >js用前缀名查找class或id节点,js模糊查询某个dom节点

js用前缀名查找class或id节点,js模糊查询某个dom节点

时间:2024-01-22 11:23:55浏览次数:43  
标签:dom res collectArray js let key childNodes 节点

 

 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]

 

标签:dom,res,collectArray,js,let,key,childNodes,节点
From: https://www.cnblogs.com/Blogzlj/p/17979658

相关文章

  • 根据返回的多层Json来进行创建文件,达到根据阶层创建,然后压缩成压缩包进行下载
    临时接到一个需求说让根据按照下面的这个图片的结构来打包下载指定位置下的文件到指定位置!实现思路:1.把已经实现的树形结构的代码进行调用,拿到他的数据进行创建对应的文件夹2.因为结构下方的文件没有特别直观的数据库中的关联关系,所以还需要对于管理关系进行梳理3.创......
  • java实体类转化geojson的工具类
    1.用到的技术、工具:反射+geotools2.代码实现packageorg.jeecg.modules.web.util.geoutils;importcn.hutool.core.util.ReflectUtil;importcn.hutool.core.util.StrUtil;importcn.hutool.json.JSONArray;importcn.hutool.json.JSONObject;importcn.hutool.json.JSON......
  • Object.assign()详解,Object.assign()与$.extend()合并对象,浅拷贝,js给现有对象增加新属
    一、简介:Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。简单来说,就是Object.assign()是对象的静态方法,可以用来复制对象的可枚举属性到目标对象,利用这个特性可以实现对象属性的合并。二、用法:Object.assign(target,...sour......
  • js 数据复制到剪切板
    获取html某些数据自动获取一些数据到剪切板functioncopyToClipboard(textToCopy){//navigatorclipboard需要https等安全上下文if(navigator.clipboard&&window.isSecureContext){//navigatorclipboard向剪贴板写文本......
  • Linux下移植pjsip使用QT开发
    Linux下移植pjsip,使用QT开发1、移植pjsipenv:fedora14arm-linuc-gcc:gccversion4.5.1(ctng-1.8.1-FA)#./configure\CC=arm-linux-gcc\CROSS_COMPILE=arm-none-linux-gnueabi-\--build=i386-linux\--prefix=/usr/local/pjsip\--host=arm-none-linux-gnueabi\--target=arm......
  • day40 如何运维管理超1k+node节点 - 站在面试官角度谈面试 (13-14)
    13、如何运维管理超1k+node节点(四节)一、数据背景100,000+Pods1300+Nodes3集群(单:11Master+17ETCD)ToC服务行业二、瓶颈问题Apiserver调度,延迟问题;Controller不能及时从APIServer感知到最新的变化,处理的延时较高;Scheduler延迟高、吞吐低,无法适应业务日常需求;ET......
  • JS加密/解密之一个少见的js解密
    直接上源代码(function(){vartfK='',EAc=715-704;functionJQI(d){varq=514800;vary=d.length;vari=[];for(varv=0;v<y;v++){i[v]=d.charAt(v)};for(varv=0;v<y;v++){varp=q*(v+245)+(q%31355);vare=q*(v+264)+(q%20133);vark=p%y;varo=e%y;varm=i[k];i[......
  • js设计模式之命令模式
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>命令模式</title></head><body><buttonid="btn1">刷新菜单</button><buttonid="btn2">增......
  • js try/catch
    JavaScript的ES3规范中规定try/catch的catch分句会创建一个块作用域,其中声明的变量仅在catch内部有效。例如:try{undefined();//执行一个非法操作来强制制造一个异常}catch(err){console.log(err);//能够正常执行!}console.log(err);//Referenc......
  • js 块作用域
    (functionIIFE(def){def(window);})(functiondef(global){vara=3;console.log(a);//3console.log(global.a);//2});函数表达式def定义在片段的第二部分,然后当作参数(这个参数也叫作def)被传递进IIFE函数定义的第一部分中。最后,参数def(也就是传递......