js Vquery
// JavaScript Document function myAddEvent(obj,sEv,fn){ alert('fn:'+fn); if(obj.attachEvent){ obj.attachEvent('on'+sEv,fn); }else{ obj.addEventListener(sEv,fn,false); } } /*getClassName 完整版*/ function getClassName(oParent,sClass){ var aEle = oParent.getElementsByTagName('*'); var iResult = []; /*一般如果需要传递参数就用new RegExp,不用//,//会把里面的所有内容都当场字符串*/ var re = new RegExp('\\b'+sClass+'\\b'); for(var i=0;i<aEle.length;i++){ if(re.test(aEle[i].className)){ iResult.push(aEle[i]); } } return iResult; } function Vquery(vArg){ this.elements = []; switch(typeof vArg){ case 'function': alert(111); myAddEvent(window,'load',vArg); break; case 'string': switch(vArg.charAt(0)){ case '#'://id var obj = document.getElementById(vArg.substring(1)); this.elements.push(obj); break; case '.'://class this.elements = getClassName(document,vArg.substring(1)); break; default ://tagname this.elements = document.getElementsByTagName(vArg); break; } break; default: /*对象*/ break; } }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script src='vQuery.js'></script> <script> window.onload = function(){ new Vquery(function(){ alert('a'); }); new Vquery(function(){ alert('b'); }); }; </script> </head> <body> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)