亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳談jQuery中的this和$(this)

2019-11-20 13:55:52
字體:
來源:轉載
供稿:網友

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

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

在創建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對象了。

以上就是個人對于jQuery中this與$(this)的理解了,如有什么紕漏,請聯系我或者給我留言

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久久久久中文字幕| 国产精品成人久久久久| 日韩在线视频观看| 亚洲人永久免费| 亚洲国产精品久久久久秋霞不卡| 国产精品久久久久久av福利软件| 91视频国产高清| 国产精品入口日韩视频大尺度| 亚洲美女精品成人在线视频| 国产精品成人播放| 久久久久久久亚洲精品| 欧美黑人巨大精品一区二区| 伊人成人开心激情综合网| 日韩欧美黄色动漫| 久久久中精品2020中文| 日韩成人中文电影| 国产精品女人久久久久久| 国产激情视频一区| 亚洲精品福利免费在线观看| 欧美精品免费看| 性色av一区二区三区在线观看| 精品无码久久久久久国产| 国产精品久久中文| 精品免费在线观看| 亚洲天堂开心观看| 欧美日韩裸体免费视频| 国产精品日韩在线播放| 国产精品一区二区久久精品| 亚洲成人av在线播放| 欧美中文字幕视频| 欧美亚洲在线播放| 亚洲欧美日韩精品久久亚洲区| 国产精品视频自在线| 38少妇精品导航| 日本欧美黄网站| 日韩精品亚洲视频| 亚洲91av视频| 少妇高潮久久77777| 色视频www在线播放国产成人| 亚洲男人av在线| 成人免费淫片aa视频免费| 国产精品第10页| 欧美成人中文字幕| 亚洲自拍偷拍第一页| 91麻豆桃色免费看| 欧美激情国产日韩精品一区18| 在线看国产精品| 色综合久久中文字幕综合网小说| 日韩影视在线观看| 国产精品免费久久久久久| 日本欧美精品在线| 日本在线观看天堂男亚洲| 日韩一级黄色av| 日韩国产高清污视频在线观看| 亚洲色图15p| 亚洲人成网站777色婷婷| 国产精品久久久久久久av电影| 欧美大片免费观看在线观看网站推荐| 欧洲一区二区视频| 亚洲综合中文字幕在线观看| 亚洲精品视频在线观看视频| 在线不卡国产精品| 揄拍成人国产精品视频| 亚洲视频一区二区三区| 国产成人精品亚洲精品| 狠狠久久亚洲欧美专区| 欧美日韩中文在线| 美日韩精品免费视频| 一本大道香蕉久在线播放29| 欧美亚洲视频在线观看| 青青青国产精品一区二区| 亚洲аv电影天堂网| 55夜色66夜色国产精品视频| 欧美成人免费全部| 神马久久桃色视频| 国产精品午夜视频| 欧美精品成人91久久久久久久| 亚洲天堂精品在线| 国产91精品青草社区| 国产精品青草久久久久福利99| 久久av.com| 亚洲成人免费在线视频| 色哟哟亚洲精品一区二区| 91日韩在线视频| 欧美成人在线免费视频| 91在线高清免费观看| 亚洲综合中文字幕在线观看| 美女啪啪无遮挡免费久久网站| 久久久久国产精品免费网站| 欧洲亚洲免费视频| 国产精品高精视频免费| 久久综合色影院| 日韩精品中文字| www.美女亚洲精品| 亚洲久久久久久久久久久| 国内揄拍国内精品少妇国语| 久久躁狠狠躁夜夜爽| 欧美精品免费在线观看| 黑人巨大精品欧美一区二区| 色吧影院999| 7777免费精品视频| 国产精品一区二区三区久久久| 亚洲精品欧美日韩专区| 不卡在线观看电视剧完整版| 国产在线不卡精品| 欧美最猛性xxxxx亚洲精品| 欧美重口另类videos人妖| 色偷偷9999www| 色777狠狠综合秋免鲁丝| 精品一区二区三区四区在线| 亚洲在线免费视频| 国产精品十八以下禁看| 欧美成人精品一区二区三区| 日韩欧美黄色动漫| 欧美精品videosex极品1| 亚洲欧美综合另类中字| 2019精品视频| 91国自产精品中文字幕亚洲| 日本免费在线精品| 富二代精品短视频| 亚洲日韩中文字幕在线播放| 成人午夜在线视频一区| 亚洲人在线观看| 日韩精品在线视频| 亚洲第一av网| 亚洲精品99久久久久中文字幕| 日韩精品欧美国产精品忘忧草| 亚洲已满18点击进入在线看片| 亚洲男人第一av网站| 国产乱肥老妇国产一区二| 57pao成人永久免费视频| 久久99青青精品免费观看| 久久久久国产精品免费网站| 最新的欧美黄色| 亚洲xxxx做受欧美| 欧美性黄网官网| 亚洲欧美日韩图片| 久久中文字幕视频| 亚洲老头老太hd| 久久精品在线播放| 国产精品白嫩初高中害羞小美女| 久久av.com| 国产精品极品美女粉嫩高清在线| 久久精品99久久香蕉国产色戒| 91丨九色丨国产在线| 精品国产电影一区| 一区二区欧美亚洲| 国内精品模特av私拍在线观看| 久久久在线视频| 日韩精品视频在线播放| 日本最新高清不卡中文字幕| 欧美电影免费观看| 亚洲国产免费av| 岛国精品视频在线播放| 国产精品99久久久久久www| 91精品国产色综合久久不卡98口| 亚洲另类欧美自拍| 中文字幕日本精品| 中文在线不卡视频| 国外色69视频在线观看| 欧美精品videos性欧美| 狠狠躁夜夜躁人人爽超碰91| 91在线视频一区| 亚洲精品国产美女|