jQuery和jQuery對象都實(shí)現(xiàn)了該方法,對于jQuery對象,只是把each方法簡單的進(jìn)行了委托:
把jQuery對象作為第一個(gè)參數(shù)傳遞給jQuery的each方法.換句話說:
jQuery提供的each方法是對參數(shù)一提供的對象的中所有的子元素逐一進(jìn)行方法調(diào)用。
而jQuery對象提供的each方法則是對jQuery內(nèi)部的子元素進(jìn)行逐個(gè)調(diào)用。
jQuery.prototype.each=function( fn, args ) {
return jQuery.each( this, fn, args );
}
讓我們看一下jQuery提供的each方法的具體實(shí)現(xiàn),
jQuery.each(obj,fn,arg)
該方法有三個(gè)參數(shù):進(jìn)行操作的對象obj,進(jìn)行操作的函數(shù)fn,函數(shù)的參數(shù)args。
讓我們根據(jù)ojb對象進(jìn)行討論:
1.obj對象是數(shù)組
each方法會對數(shù)組中子元素的逐個(gè)進(jìn)行fn函數(shù)調(diào)用,直至調(diào)用某個(gè)子元素返回的結(jié)果為false為止,也就是說,
我們可以在提供的fn函數(shù)進(jìn)行處理,使之滿足一定條件后就退出each方法調(diào)用。當(dāng)each方法提供了arg參數(shù)時(shí),
fn函數(shù)調(diào)用傳入的參數(shù)為arg,否則為:子元素索引,子元素本身
2.obj 對象不是數(shù)組
該方法同1的最大區(qū)別是:fn方法會被逐次不考慮返回值的進(jìn)行進(jìn)行。換句話說,obj對象的所有屬性都會被fn方法進(jìn)行調(diào)用,
即使fn函數(shù)返回false。調(diào)用傳入的參數(shù)同1類似。
在each 中 的continue 和break
continue 在each 中用 return true;
break 在each 中用 return false;
var data = eval("(" + response.responseText + ")");
var notice = "";
$.each(data, function(i, row) {
notice += String.format("<li><a href=''>{0}</a></li>", row.NoticeTitle);
})