代码部分

<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,可以调用对象中的方法,大功告成。


Ether
7 声望0 粉丝

信息过载