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

首頁 > 語言 > JavaScript > 正文

jQuery源碼分析之jQuery.fn.each與jQuery.each用法

2024-05-06 16:15:10
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery源碼分析之jQuery.fn.each與jQuery.each用法,較為詳細的分析了each的用法,非常具有實用價值,需要的朋友可以參考下
 

本文實例講述了jQuery源碼分析之jQuery.fn.each與jQuery.each用法。分享給大家供大家參考。具體分析如下:

先上例子,下面代碼的作用是:對每個選中的div元素,都給它們添加一個red類

復制代碼代碼如下:
$('div').each(function(index, elem){
  
    $(this).addClass('red');
}
});

 

上面用的的.each,即jQuery.fn.each,其內部是通過jQuery.each實現的

復制代碼代碼如下:
jQuery.fn.each

先貼一下類官方API說明,非常簡單,只有兩點需要注意
上文例子里的$(this).addClass('red'),其中,this指的是當前操作的dom元素
each中傳入的方法,可以返回任意值,當返回的值為false時,跳出當前循環操作
復制代碼代碼如下:
/**
  
 * @description 對jQuery對象中,匹配的的每個dom元素執行一個方法
  
 * @param {Number} index 當前處理元素在集合中的位置
  
 * @param {DOMElement} Element 當前處理的dom元素
 
*/
.
.each( function(index, Element) )

下面舉兩個簡單的例子

 

例子一:

給頁面所有的div元素添加red類

復制代碼代碼如下:
$('div').each(function(index, elem){
  
    $(this).addClass('red');
}
});

例子二

 

給頁面前5個div元素添加red類

復制代碼代碼如下:
$('div').each(function(index, elem){
  
    if(index>=5) return false;  // 跳出循環
    $(this).addClass('red');
}
});

如上,用法挺簡單,不贅述,詳細可查看 http://api.jquery.com/each/

 

源碼內部是通過jQuery.each實現的,下面就講下jQuery.each的源碼,講完jQuery.each的源碼,jQuery.fn.each的源碼就很簡單了
 
jQuery.each:

同樣是先上一個簡單的例子

復制代碼代碼如下:
$.each([52, 97], function(index, value) {
  alert(index + ': ' + value + ':' + this);
}
});

輸出內容如下:

 

0: 52-52
1
1: 97-97

類官方API說明

同樣是有兩個注意點

上面例子中的this,是集合中的元素,即下面的 valueOfElement
在callback中返回false,可以跳出循環

復制代碼代碼如下:
/**
  
 * @description 對集合(數組或對象)中的每個元素,執行某個操作
  
 * @param {Number|String} indexInArray 元素在集合中對應的位置(如集合為數組,則為數字;如集合為對象,則為鍵值)
  
 * @param {AnyValue} valueOfElement 集合中的元素
 
*/
j
jQuery.each( collection, callback(indexInArray, valueOfElement) )

 
例子一
復制代碼代碼如下:
$.each( ['one,'two','three', 'four'], function(index, value){
  
    if(index >= 2) return false;
  
    alert( "Index:" + index + ", value: " + value );
}
});

例子二

 

從官網直接copy來的例子,湊合著看

復制代碼代碼如下:
$.each( { name: "John", lang: "JS" }, function(k, v){
  
    alert( "Key: " + k + ", Value: " + v );
}
});

源碼:
復制代碼代碼如下:
// args is for internal usage only
e
each: function( obj, callback, args ) {
  
    var value,
  
        i = 0,
  
        length = obj.length,
  
        isArray = isArraylike( obj );   // obj是不是類似數組的對象,比如 {'0':'hello', '1':'world', 'length':2},其實就是為jQuery對象服務啦
 
    if ( args ) {   // args,其實沒發現這個參數有什么實際作用~~直接跳過看else里面的內容即可,除了callback傳的參數不同外無其他區別
        if ( isArray ) {
            for ( ; i < length; i++ ) {
                value = callback.apply( obj[ i ], args );
                if ( value === false ) {
                    break;
                }
            }
        } else {
            for ( i in obj ) {
                value = callback.apply( obj[ i ], args );
                if ( value === false ) {
                    break;
                }
            }
        }
    // A special, fast, case for the most common use of each
    } else {
        if ( isArray ) {    // 處理數組
            for ( ; i < length; i++ ) {
                value = callback.call( obj[ i ], i, obj[ i ] );
                if ( value === false ) {
                    break;
                }
            }
        } else {    // 處理對象
            for ( i in obj ) {
                value = callback.call( obj[ i ], i, obj[ i ] ); // value 為callback的返回值
                if ( value === false ) {    // 注意這里,當value===false的時候,直接跳出循環了
                    break;
                }
            }
        }
    }
    return obj;
}
},

 
  
遲到的jQuery.fn.each源碼:

 

的確很簡單,只要理解了jQuery.each應該就沒問題了,沒什么好講的~

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

 
結束語

 

與jQuery.extend、jQuery.fn.extend一樣,雖然 jQuery.each、jQuery.fn.each代碼很簡單,但也扮演了相當重要的作用,jQuery里大量用到了這兩個方法,舉例:

復制代碼代碼如下:
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
  
    class2type[ "[object " + name + "]" ] = name.toLowerCase();
}
});

所以,好好掌握each!

 

希望本文所述對大家的jQuery程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
疯狂蹂躏欧美一区二区精品| 欧美噜噜久久久xxx| 国产脚交av在线一区二区| 久久理论片午夜琪琪电影网| 亚洲精品一区av在线播放| 亚洲欧洲第一视频| 久久影院模特热| 91大神在线播放精品| 国产精品视频一区国模私拍| 日韩电影中文字幕一区| 亚洲国产另类 国产精品国产免费| 国产精品久久久久久亚洲调教| 国产精品久久久久av| 亚洲精品影视在线观看| 国产精品激情av在线播放| 国产成人亚洲综合青青| 久久伊人色综合| 久久在线精品视频| 久久影院资源站| 精品色蜜蜜精品视频在线观看| 热re99久久精品国产66热| 色综合视频网站| 久久综合久中文字幕青草| www.亚洲男人天堂| 亚洲日本aⅴ片在线观看香蕉| 国产免费一区二区三区香蕉精| 日韩精品中文字幕在线观看| 国产成人精品一区二区三区| 亚洲国产精品专区久久| 欧美日韩性生活视频| 亚洲电影在线观看| 国产自产女人91一区在线观看| 国产综合在线看| 亚洲电影免费观看高清完整版在线| 久久亚洲欧美日韩精品专区| 欧美激情国内偷拍| 国产一区二区丝袜高跟鞋图片| 日韩av在线免费看| 91精品视频在线免费观看| 欧美第一页在线| 亚洲精品国产精品自产a区红杏吧| 亚洲高清福利视频| 久热精品视频在线观看一区| 日本午夜人人精品| 精品国产一区久久久| 亚洲一级片在线看| 国产日本欧美视频| 国产一区二区三区三区在线观看| 亚洲精品国产电影| 亚洲国产精品悠悠久久琪琪| 国产一区二中文字幕在线看| 视频直播国产精品| 亚洲欧美中文在线视频| 久久天天躁狠狠躁夜夜躁2014| 国内精品久久久久久久久| 欧美精品video| 欧美日韩激情美女| 最近2019中文字幕第三页视频| 久久精品久久精品亚洲人| 色综合久综合久久综合久鬼88| 久久资源免费视频| 久久不射热爱视频精品| 国产999视频| 国产精品免费视频久久久| 亚洲欧美制服另类日韩| 91精品久久久久久久久| 日韩大胆人体377p| 成人欧美在线观看| 中文字幕一区日韩电影| 欧洲成人免费aa| 中日韩美女免费视频网址在线观看| 97免费中文视频在线观看| 欧美成人在线影院| www欧美xxxx| 久久久久九九九九| 亚洲91精品在线观看| 国产精品第三页| 久久久久久高潮国产精品视| 国产精品亚洲综合天堂夜夜| 亚洲免费高清视频| 午夜精品久久久久久久99热浪潮| 欧美在线www| 国内伊人久久久久久网站视频| 热久久视久久精品18亚洲精品| 亚洲精品国产精品久久清纯直播| 成人精品久久一区二区三区| 国产噜噜噜噜噜久久久久久久久| 欧美日韩高清在线观看| 蜜臀久久99精品久久久久久宅男| www国产91| 97国产精品视频人人做人人爱| 国产精品第1页| 亚洲男人天堂2019| 亚洲精品天天看| 日韩最新免费不卡| 久久久久久久国产精品| 91精品国产九九九久久久亚洲| 国产精品女主播| 久久人人爽人人爽人人片亚洲| 45www国产精品网站| 国产精品久久久久久久天堂| 91久久久久久久一区二区| 欧美另类xxx| 精品在线欧美视频| 国产精品一区二区电影| 亚洲人成啪啪网站| 国产精品自拍偷拍视频| 久久99国产精品自在自在app| 91老司机在线| 久久亚洲国产精品成人av秋霞| 欧美成人午夜免费视在线看片| 欧美在线免费看| 日韩综合视频在线观看| 最近2019好看的中文字幕免费| 97在线观看视频| 亚洲iv一区二区三区| 国产成人综合一区二区三区| 78色国产精品| 欧美壮男野外gaytube| 精品中文字幕乱| 亚洲日本中文字幕免费在线不卡| 中国china体内裑精亚洲片| 日本午夜精品理论片a级appf发布| 91色视频在线导航| 精品夜色国产国偷在线| 97人人做人人爱| 国产亚洲精品成人av久久ww| 富二代精品短视频| 国产精品高清免费在线观看| 欧美日韩ab片| 欧美精品久久久久久久免费观看| 国产成人精品免费久久久久| 亚洲人成网站色ww在线| 日韩成人中文电影| 国产精品爽爽爽爽爽爽在线观看| 久久精品影视伊人网| 九九热精品视频在线播放| 日韩欧美一区视频| 欧美另类第一页| 日韩在线观看视频免费| xxx一区二区| 亚洲精品美女久久久| 中文字幕亚洲一区二区三区五十路| 成人美女免费网站视频| 亚洲国产天堂久久国产91| 亚洲视频在线视频| 精品福利视频导航| 国产日韩精品综合网站| 国产在线不卡精品| 午夜精品国产精品大乳美女| 亚洲电影免费观看高清完整版在线观看| 国产在线拍揄自揄视频不卡99| 亚洲激情在线观看视频免费| 午夜免费在线观看精品视频| 久久男人的天堂| 日韩在线观看免费| 欧美一区二区三区……| 欧美中文字幕在线播放| 日韩高清电影免费观看完整| 高清一区二区三区四区五区| 国产成人精品在线视频| 亚洲免费影视第一页| 草民午夜欧美限制a级福利片| 97不卡在线视频|