javascript 原生js对html元素的 增删改查 操作
1 'use strict'; 2 3 class View{ 4 5 constructor(){ 6 7 } 8 9 //创建html元素 10 addEl(fel, elemName, id, cls){ 11 //创建一个元素 12 let el = document.createElement(elemName); 13 //设置el id 和 class 14 if(id){el.setAttribute('id',id);} 15 if(cls){el.className = cls;} 16 //把el添加到fel并显示(渲染el) 17 if(fel){fel.appendChild(el);} 18 return el; 19 } 20 21 //删除html元素 22 delEl(){ 23 let k, arg = arguments, err = []; 24 for(k = 0; k < arg.length; k++){ 25 if(this.isEl(arg[k]) === false){err.push(arg[k]); continue;} 26 arg[k].parentNode.removeChild(arg[k]); 27 } 28 if(err.length > 0){return {err:'这里有一些删除失败的元素', arr:err};} 29 return true; 30 } 31 32 //id获取html元素 33 getEl(id){ 34 return document.getElementById(id); 35 } 36 37 //通过parentNode检查元素是否存在于页面中 38 isEl(el){ 39 if(typeof(el) !== 'object'){return false;} 40 //被删除之后的html元素object的 parentNode等于null 41 if(!el.parentNode){return false;} 42 return true; 43 } 44 45 //元素绑定事件 46 addEvent(target, callback){ 47 //target.addEventListener('click', function(event){if(callback){callback(event);}}, false); 48 } 49 50 } 51 52 let v = new View(); 53 54 console.log('创建元素'); 55 let el_a = v.addEl(document.body, "p"); 56 let el_b = v.addEl(document.body, "p"); 57 let el_c = v.addEl(document.body, "p"); 58 59 console.log('验证元素_0'); 60 console.log(v.isEl(el_a));//true 61 console.log(v.isEl(el_b));//true 62 console.log(v.isEl(el_c));//true 63 64 console.log('删除元素_0'); 65 console.log(v.delEl(el_a, el_b)); 66 console.log(v.delEl(el_c)); 67 68 console.log('验证元素_1'); 69 console.log(v.isEl(el_a)); 70 console.log(v.isEl(el_b)); 71 console.log(v.isEl(el_c)); 72 73 console.log('删除元素_1'); 74 console.log(v.delEl(el_a, el_b)); 75 console.log(v.delEl(el_c));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义