DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> jquery的each方法使用示例分享
jquery的each方法使用示例分享
編輯:JavaScript綜合知識     

 each()函數是基本上所有的框架都提供了的一個工具類函數,通過它,你可以遍歷對象、數組的屬性值並進行處理,jQuery和jQuery對象都實現了該方法,下面是使用方法

對於jQuery對象,只是把each方法簡單的進行了委托:把jQuery對象作為第一個參數傳遞給jQuery的each方法.換句話說:jQuery提供的each方法是對參數一提供的對象的中所有的子元素逐一進行方法調用。而jQuery對象提供的each方法則是對jQuery內部的子元素進行逐個調用。   代碼如下: jQuery.prototype.each=function( fn, args ) {   return jQuery.each( this, fn, args );  }     讓我們看一下jQuery提供的each方法的具體實現,jQuery.each(obj,fn,arg)   該方法有三個參數:進行操作的對象obj,進行操作的函數fn,函數的參數args。   讓我們根據ojb對象進行討論:   1. obj對象是數組   each方法會對數組中子元素的逐個進行fn函數調用,直至調用某個子元素返回的結果為false為止,也就是說,我們可以在提供的fn函數進行處理,使之滿足一定條件後就退出each方法調用。當each方法提供了arg參數時,fn函數調用傳入的參數為arg,否則為:子元素索引,子元素本身。   2. obj 對象不是數組   該方法同1的最大區別是:fn方法會被逐次不考慮返回值的進行進行。換句話說,obj對象的所有屬性都會被fn方法進行調用,即使fn函數返回false。調用傳入的參數同1類似。    代碼如下: jQuery.each=function( obj, fn, args ) {      if ( args ) {         if ( obj.length == undefined ){             for ( var i in obj )               fn.apply( obj, args );         }else{             for ( var i = 0, ol = obj.length; i < ol; i++ ) {               if ( fn.apply( obj, args ) === false )                    break;            }        }    } else {         if ( obj.length == undefined ) {             for ( var i in obj )                 fn.call( obj, i, obj );         }else{            for ( var i = 0, ol = obj.length, val = obj[0]; i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){}         }   }    return obj;  }       需要特別注意的是each方法中fn的具體調用方法並不是采用簡單的fn(i,val)或fn(args),而是采用了fn.call(val,i,val)或fn.apply(obj.args)的形式,這意味著,在你自己的fn的實現中,可以直接采用this指針引用數組或是對象的子元素。這種方式是絕大多數jQuery所采用的一種實現方式。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved