//for循環(huán)
? ? ? ? var list=[1,2,3,4,5];
? ? ? ? for(var i=0;i
? ? ? ? ? ? console.log(list[i]);//1,2,3,4,5
? ? ? ? }
//? ? ? ? for----in循環(huán)
? ? ? ? var list2={
? ? ? ? ? ? name:'zyy', weight:52,? height:160
? ? ? ? }
? ? ? ? for(var i in list2){//i變量是list2的屬性
? ? ? ? ? ? if(list2.hasOwnProperty(i)){//為了判斷,只輸出list2的私有屬性
? ? ? ? ? ? ? ? console.log(i,":"+list2[i])
? ? ? ? ? ? ? ? //name:zyy //weight:52//height:160
? ? ? ? ? ? }
}
//? ? jquery的$.each()遍歷(數(shù)組,json對(duì)象)
var arr1 = [ "aaa", "bbb", "ccc" ];
$.each(arr1, function(i,val){
? ? console.log(i,val);
? ? //0,aaa//1,bbb//2,ccc
});
$.each()與$(selector).each()不同,前者可用于遍歷任何的集合(無論是數(shù)組或?qū)ο?, 后者專用于jquery對(duì)象的遍歷
----each處理一維數(shù)組----
var arr1 = [ "aaa", "bbb", "ccc" ];
$.each(arr1, function(i,val){
alert(i);
alert(val);
});
alert(i)將輸出0,1,2
alert(val)將輸出aaa,bbb,ccc
-----each處理二維數(shù)組-----
var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
alert(i);alert(item);
});
arr2為一個(gè)二維數(shù)組,item相當(dāng)于取這二維數(shù)組中的每一個(gè)數(shù)組。
item[0]相對(duì)于取每一個(gè)一維數(shù)組里的第一個(gè)值
alert(i)將輸出為0,1,2,因?yàn)檫@二維數(shù)組含有3個(gè)數(shù)組元素
alert(item)將輸出為 ['a', 'aa', 'aaa'],['b', 'bb', 'bbb'],['c', 'cc', 'ccc']
-----對(duì)此二位數(shù)組的處理稍作變更之后----
var arr = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
$.each(item,function(j,val){
alert(j);
alert(val);
});
});
alert(j)將輸出為0,1,2,0,1,2,0,1,2
alert(val)將輸出為a,aa,aaa,b,bb,bbb,c,cc,ccc
----each處理json數(shù)據(jù),這個(gè)each就有更厲害了,能循環(huán)每一個(gè)屬性-----
var obj = { one:1, two:2, three:3};
each(obj, function(key, val) {
alert(key);
alert(val);
});
這里alert(key)將輸出one two three
alert(val)將輸出one,1,two,2,three,3
這邊為何key不是數(shù)字而是屬性呢,因?yàn)閖son格式內(nèi)是一組無序的屬性-值,既然無序,又何來數(shù)字呢。
而這個(gè)val等同于obj[key]
-------如果你dom中有一段這樣的代碼---------
然后你使用each如下
$.each($("input:hidden"), function(i,val){
alert(val);
alert(i);
alert(val.name);
alert(val.value);
});
那么,alert(val)將輸出[object HTMLInputElement],因?yàn)樗且粋€(gè)表單元素。
alert(i)將輸出為0,1,2,3
alert(val.name);將輸出aaa,bbb,ccc,ddd,如果用this.name將輸出同樣的結(jié)果
alert(val.value); 將輸出111,222,333,444,如果用this.value將輸出同樣的結(jié)果
-------如果將以上面一段代碼改變成如下的形式-----
$("input:hidden").each(function(i,val){
alert(i);
alert(val.name);
alert(val.value);
});