91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jquery 里的each使用方法詳解

發布時間:2020-04-11 02:41:55 來源:網絡 閱讀:3092 作者:lcylanyue 欄目:web開發

這個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所采用的一種實現方式。

 還是通過實例來說明吧

 先看代碼:

$("#submit").click(function(){
try{
$('#leftTbl tr').each(function(i){
var emailInput = $("#email_"+(1+i));
if(!re.test(emailInput.val())){
alert("請正確填寫email");
emailInput.focus();
throw emailInput;
}else{
email = emailInput.val();
}
});
}catch(e){
return false;
}
$("#pageform").submit();
});

通過throw 然后catch實現,也可以做了計數器到最后判斷他的值!

上面的代碼似乎和標題沒什么關系,那么在each里如何實現break與continue 其實看下面還是有關系的…

$('input').each(function(){
if($(this).val() == ''){
// do something
if(1==1)return false; // 使用return false 來實現跳出循環。
else return true; // 使用return true 來實現進入下一個循環。
}
});

jquery里面應該是迭代每一個元素后查看返回的值,判斷是否繼續迭代下一個元素

   var arr = [ "one", "two", "three", "four"];     


$.each(arr, function(){     


alert(this);     


});     


//上面這個each輸出的結果分別為:one,two,three,four    



var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]     


$.each(arr1, function(i, item){     


alert(item[0]);     


});     


//其實arr1為一個二維數組,item相當于取每一個一維數組,   


//item[0]相對于取每一個一維數組里的第一個值   


//所以上面這個each輸出分別為:1   4   7     




var obj = { one:1, two:2, three:3, four:4};     


$.each(obj, function(key, val) {     


alert(obj[key]);           


});   


//這個each就有更厲害了,能循環每一個屬性     


//輸出結果為:1   2  3  4    

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀喇沁旗| 左贡县| 宽甸| 甘孜| 息烽县| 琼结县| 淮滨县| 浦东新区| 延寿县| 来凤县| 门源| 乐山市| 长寿区| 呼伦贝尔市| 宣汉县| 定结县| 斗六市| 太和县| 丹巴县| 来宾市| 白河县| 福海县| 密山市| 肥西县| 三明市| 平顺县| 景宁| 仁化县| 安仁县| 宜城市| 大田县| 根河市| 独山县| 连云港市| 安平县| 东莞市| 朝阳县| 郴州市| 灵武市| 建德市| 昌乐县|