一個通用的遍歷函數, 可以用來遍歷物件和陣列. 陣列和含有一個length屬性的偽數組物件(偽數組物件如function的arguments物件)以數字索引進行遍歷,從0到length-1,其它的物件通過的屬性進行遍歷.
$.each()與$(selector).each()不同, 後者專用於jquery物件的遍歷, 前者可用於遍歷任何的集合(無論是數組或物件),如果是數組,回呼函數每次傳入數組的索引和對應的值(值也可以透過this 關鍵字取得,但javascript總是會包裝this 值作為一個物件—儘管是一個字串或是一個數字),方法會傳回被遍歷物件的第一參數。
範例:———傳入陣列
<script><br />
<br />
$.each([52, 97], function(index, value) {<br />
alert(index ‘: ‘ value);<br />
});<br />
<br />
</script>
//輸出
0: 52
1: 97
範例:———如果一個映射作為集合使用,回呼函數每次傳入一個鍵-值對
<script><br />
<br />
var map = {<br />
‘flammable': ‘inflammable',<br />
‘duh': ‘no duh'<br />
};<br />
$.each(map, function(key, value) {<br />
alert(key ‘: ‘ value);<br />
});<br />
<br />
</script>
//輸出
flammable: inflammable
duh: no duh
範例:———回呼函數中return false時可以退出$.each(), 如果回傳一個非false 即會像在for迴圈中使用continue 一樣, 會立即進入下一個遍歷
<script><br />
var arr = [ "one", "two", "three", "four", "five" ];//陣列<br />
var obj = { one:1, two:2, three:3, four:4, five:5 }; // 物件<br />
jQuery.each(arr, function() { // this 指定值<br />
$(“#” this).text(“Mine is ” this “.”); // this指向為數組的值, 如one, two<br />
return (this != “three”); // 如果this = three 則退出遍歷<br />
});<br />
jQuery.each(obj, function(i, val) { // i 指向鍵, val指定值<br />
$(“#” i).append(document.createTextNode(” – ” val));<br />
});<br />
</script>
// 輸出
Mine is one. – 1
Mine is two. – 2
Mine is three. – 3
- 4
- 5
範例:———遍歷陣列的項, 傳入index和value
頭>
$.each( ['a','b','c'], function(i, l){
警報(“索引#”i“:”l);
});
腳本>
身體>
範例:————遍歷物件的屬性,建立key和value
頭>
$.each( { name: “John”, lang: “JS” }, function(k, v){
Alert(“鍵:” k “,值:” v );
});
腳本>
身體>
正自我評論的例子
1.如果不想輸出第一項 (使用retrun true)進入下一班
頭>
var myArray=["skipThis", "dothis", "andThis"];
$.each(myArray, 函數(索引, 值) {
if (索引 == 0) {
回傳真; // 相當於普通 for 迴圈的「繼續」
}
// 否則做一些事情...
警報(索引“:”值);
});
腳本>
身體>