定制化jq

99 阅读1分钟

extend

    <script>
        var car1 = {
            color:{name:"水晶白",price:"1000w"}
        }
        var car2 = {
            name:"保时捷",
            color:{name:"炫酷黑"}
        }
        function exFn(o1,o2,flag){
            console.log( $.extend(flag,o1,o2) )
        }
        exFn(car1,car2,true);
        exFn(car1,car2,false);
    </script>

fnextend

    <button>全选</button>
    <p>1 <input type="checkbox" name="" id=""></p>
    <p>2 <input type="checkbox" name="" id=""></p>
    <p>3 <input type="checkbox" name="" id=""></p>
    <script src="../jquery-1.12.4.js"></script>
    <script>
        let count = 0;
        $.fn.extend({
            checked:function(){
                this.each(function(i,e){
                    e.checked = true
                })
            }
        })
        $.fn.extend({
            del:function(){
                this.each(function(i,e){
                    e.checked = false
                })
            }
        })
        $('button').click(function(){
            if(count == 0){
                count = 1;
                $('button').html('取消全选')
                $('input').checked();
            }else{
                count = 0;
                $('button').html('全选')
                $('input').del();

            }
        })
    </script>
</body>

自制简易jq框架

    function $(element){
        let ele = document.querySelector(element)
        ele.css = function(sx,value){
            this.style[sx] = value;
        }
        ele.show = function(){
            this.style.display = 'block';
        }
        ele.hide = function(){
            this.style.display = 'none';
        }
        ele.addClass = function(className){
            this.className = this.className + ' ' + className;
        }
        ele.removeClass = function(className){
            this.className = this.className.replace(className,'');
        }
        ele.click = function(e){
            this.onclick = e
        }
        return ele;
    }
    window.$ = $
})
()