<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