<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳談jQuery中的this和$(this)_jquery

        來源:懂視網 責編:小采 時間:2020-11-27 21:28:49
        文檔

        詳談jQuery中的this和$(this)_jquery

        詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ
        推薦度:
        導讀詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ

        網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。

        $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQuery做了特殊的處理。 

        在創建dom的jQuery對象時,jQuery不僅僅為dom創建一個jQuery對象,而且還將dom存儲在所創建對象的數組中。

        代碼如下:
        elem = document.getElementById(match[2]);
        if (elem && elem.parentNode) {
        this.length = 1;
        this[0] = elem;
        }

        this.context = document;
        this.selector = selector;
        return this;

        this[0] = elem這條語句就是實現對象數組。所以javascript是很有意思的語言,使用this訪問時,可以訪問它所指向的對象的成員函數,而其實this又是一個對象數組。其存放的是dom對象。

        先看看 $("p").each() -- 循環

        代碼如下:
        each: function( callback, args ) {
        return jQuery.each( this, callback, args );
        }

        看了each函數的調用大家應該明白,jQuery.each( this, callback, args );調用的是對象數組,而對象的數組存儲的是dom對象,因此在callback函數中的this自然是dom對象了

        再看看$("p").hide() -- 成員函數

        代碼如下:
        hide: function() {
        return showHide( this );
        },
        function showHide( elements, show ) {var elem, display,
        values = [],
        index = 0,
        length = elements.length;
        for ( ; index < length; index++ ) {
        elem = elements[ index ];
        if ( !elem.style ) {
        continue;
        }
        values[ index ] = jQuery._data( elem, "olddisplay" );
        if ( show ) {
        // Reset the inline display of this element to learn if it is
        // being hidden by cascaded rules or not
        if ( !values[ index ] && elem.style.display === "none" ) {
        elem.style.display = "";
        }
        // Set elements which have been overridden with display: none
        // in a stylesheet to whatever the default browser style is
        // for such an element
        if ( elem.style.display === "" && isHidden( elem ) ) {
        values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
        }
        } else {
        display = curCSS( elem, "display" );
        if ( !values[ index ] && display !== "none" ) {
        jQuery._data( elem, "olddisplay", display );
        }
        }
        }
        // Set the display of most of the elements in a second loop
        // to avoid the constant reflow
        for ( index = 0; index < length; index++ ) {
        elem = elements[ index ];
        if ( !elem.style ) {
        continue;
        }
        if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
        elem.style.display = show ? values[ index ] || "" : "none";
        }
        }
        return elements;
        }

        從上面的代碼可以看出hide行數其實調用的是showHide,而傳入的第一個參數this,并不是dom對象,而是jQuery對象數組,因此showHide函數通過循環此對象數組獲取每一個dom對象。

        最后看看$("p").bind() -- 事件

        代碼如下:
        bind: function( types, data, fn ) {
        return this.on( types, null, data, fn );
        },

        代碼如下:
        on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
        // 此部分代碼省略
        return this.each( function() {
        jQuery.event.add( this, types, fn, data, selector );
        });
        },

        bind函數調用的是 on函數,而on函數又是通過 each函數實現了jQuery.event.add。因此 jQuery.event.add( this中的this也就是dom對象了。所以事件中的this也就是dom對象了。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳談jQuery中的this和$(this)_jquery

        詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ
        推薦度:
        標簽: thi this jQuery
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲一久久久久久久久| 亚洲精品国产情侣av在线| 亚洲av无码成人影院一区| 无码人妻一区二区三区免费| 亚洲成av人片不卡无码| 国产曰批免费视频播放免费s| 亚洲成在人线中文字幕| 91香蕉在线观看免费高清| 亚洲熟妇无码久久精品| 国产情侣激情在线视频免费看| 亚洲国产成人久久| 成年性午夜免费视频网站不卡| 中文日本免费高清| 国产亚洲一区二区精品| 午夜精品免费在线观看| 亚洲视频精品在线观看| 成人免费视频小说| 免费无遮挡无遮羞在线看 | 久久久精品2019免费观看 | 亚洲激情在线观看| 西西人体大胆免费视频| 亚洲国产中文v高清在线观看| 国产免费久久精品99久久| 亚洲色四在线视频观看| 成人毛片免费观看视频大全| 国产精品亚洲а∨无码播放不卡| 久久久久国产成人精品亚洲午夜 | 免费人成黄页在线观看日本| 亚洲成人黄色在线观看| 四虎永久免费地址在线网站| 成人毛片100免费观看| 精品久久久久久亚洲精品| 一级毛片直播亚洲| 亚洲伊人久久大香线蕉| 国产在线ts人妖免费视频| 国产日韩AV免费无码一区二区 | 久久国产乱子伦精品免费不卡| 激情亚洲一区国产精品| 亚洲国产电影av在线网址| 久久精品免费一区二区| 午夜在线免费视频|