在jquery中,遍歷物件和陣列,經常會用到$().each和$.each(),兩個方法。兩個方法是有區別的,從而這兩個方法在針對不同的操作上,顯示了各自的特點。
$().each,對於這個方法,在dom處理上面用的較多。如果頁面有多個input標籤型別為checkbox,對於這時用$().each來處理多個checkbook,例如:
$("input[name='ch']").each(function(i),,function(i,n)
);引數i為遍歷索引值,n為當前的遍歷物件.
var arr1 = [ "one", "two", "three", "four", "five" ];
$.each(arr1, function());
輸出:one two three four five
var arr2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
$.each(arr2, function(i, item));
輸出:1 4 7
var obj = ;
$.each(obj, function(key, val) );
輸出:1 2 3 4 5
在jquery裡有乙個each方法,用起來非常的爽,不用再像原來那樣寫for迴圈,jquery原始碼裡自己也有很多用到each方法。
其實jquery裡的each方法是通過js裡的call方法來實現的。
下面簡單介紹一下call方法。
call這個方法很奇妙,其實官方的說明是:「呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。」網上更多的解釋是變換上下文環境,也有說是改變上下文this指標。
call([thisobj[,arg1[, arg2[,
[,.argn]]]]])
引數thisobj
可選項。將被用作當前物件的物件。
arg1, arg2, , argn
可選項。將被傳遞方法引數序列。
說明call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。
引用網上有乙個很經典的例子
js**
function add(a,b)
function sub(a,b)
add.call(sub,3,1);
用 add 來替換 sub,add.call(sub,3,1) == add(3,1) ,所以執行結果為:alert(4);
注意:js 中的函式其實是物件,函式名是對 function 物件的引用。
具體call更深入的就不在這裡提了。
下面提一下jquery的each方法的幾種常用的用法
js**
var arr = [ "one", "two", "three", "four"];
$.each(arr, function());
//上面這個each輸出的結果分別為:one,two,three,four
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item));
//其實arr1為乙個二維陣列,item相當於取每乙個一維陣列,
//item[0]相對於取每乙個一維陣列裡的第乙個值
//所以上面這個each輸出分別為:1
4 7
var obj = ;
$.each(obj, function(key, val) );
//這個each就有更厲害了,能迴圈每乙個屬性
//輸出結果為:1
2 3 4
jquery的 each, each的區別
在jquery中,遍歷物件和陣列,經常會用到 each和 each 兩個方法。兩個方法是有區別的,從而這兩個方法在針對不同的操作上,顯示了各自的特點。each,對於這個方法,在dom處理上面用的較多。如果頁面有多個input標籤型別為checkbox,對於這時用 each來處理多個checkbook...
jquery的 each, each的區別
在jquery中,遍歷物件和陣列,經常會用到 each和 each 兩個方法。兩個方法是有區別的,從而這兩個方法在針對不同的操作上,顯示了各自的特點。each,對於這個方法,在dom處理上面用的較多。如果頁面有多個input標籤型別為checkbox,對於這時用 each來處理多個checkbook...
jquery的 each, each的區別
在jquery中,遍歷物件和陣列,經常會用到 each和 each 兩個方法。兩個方法是有區別的,從而這兩個方法在針對不同的操作上,顯示了各自的特點。each,對於這個方法,在dom處理上面用的較多。如果頁面有多個input標籤型別為checkbox,對於這時用 each來處理多個checkbook...