原生JS實現jquery的鏈式編程。

這是我根據以前遇到的一個面試題,題目:用原生JS實現$("#ct").on("click",fn).attr("id")。javascript

而後看了篇jquery源碼分析(http://www.cnblogs.com/aaronjs/p/3279314.html),本身寫出來的一個實現,選擇器用的querySelector,關於鏈式編程也只是返回this而已,這也算是本身看jquery源碼解決的第一個問題吧,繼續加油。html

如今想來當年面試官確實沒說錯,我jquery基礎確實差,慢慢學吧,要學的還在不少。java

先上代碼吧。jquery

 var jq = function(selector){
           return new jq.prototype.init(selector);
       };
        jq.prototype = {
            init:function(selector){
                this.el = document.querySelector(selector);
                return this;
            },
            on:function(event,fn){
                if(window.addEventListener){
                    this.el.addEventListener(event,fn,false);
                }else if(window.attachEvent){
                    this.el.attachEvent(on+event,fn);
                }
                return this;
            },
            attr:function(event,val){
                if(!val){
                    return this.el.getAttribute(event);
                }else{
                    this.el.setAttribute(event,val);
                    return this;
                }
            }
        }
        jq.prototype.init.prototype = jq.prototype;

        console.log(jq("#ct").on("click",function(){alert("您點擊了我。")}).attr("title","個人圖片"));
相關文章
相關標籤/搜索