<script> window.jQuery=function(nodeOrSelector){ let nodes={} let node1=[] if(typeof nodeOrSelector==='string'){ let temp=document.querySelectorAll(nodeOrSelector) for(let i=0;i<temp.length;i++){ node1[i]=temp[i] } }else if(nodeOrSelector instanceof Node){ node1={ 0:nodeOrSelector, length:1 } } nodes.addClass=function(classes){ classes.forEach(value => { for(let i=0;i<node1.length;i++){ node1[i].classList.add(value) } }) } nodes.setText=function(text){ for(let i=0;i<node1.length;i++){ node1[i].textContent=text } } return nodes } window.$=jQuery var $div=$('div') $div.addClass(['red']) $div.setText('hi') </script>
首先声明函数jQuery()并在函数中声明一个封装了两个函数的对象,以实现给元素加class和添加文本的功能;
其次在函数中判断所传参数是否为字符串仍是节点;
接着编写addClass与setText方法;
最后返回对象nodes,能够调用对象中的方法,大功告成。node