each以及他的回調函數在jquery裏面有強大的功能,下面本身先是用了百度文庫裏面的一些東西而後本身寫了一個主動選擇省市的函數[純jquery]javascript
經過它,你能夠遍歷對象、數組的屬性值並進行處理。
使用說明
each函數根據參數的類型實現的效果不徹底一致:
1、遍歷對象(有附加參數)
$.each(Object, function(p1, p2) {
this; //這裏的this指向每次遍歷中Object的當前屬性值
p1; p2; //訪問附加參數
}, ['參數1', '參數2']);
2、遍歷數組(有附件參數)
$.each(Array, function(p1, p2){
this; //這裏的this指向每次遍歷中Array的當前元素
p1; p2; //訪問附加參數
}, ['參數1', '參數2']);
3、遍歷對象(沒有附加參數)
$.each(Object, function(name, value) {
this; //this指向當前屬性的值
name; //name表示Object當前屬性的名稱
value; //value表示Object當前屬性的值
});
4、遍歷數組(沒有附加參數)
$.each(Array, function(i, value) {
this; //this指向當前元素
i; //i表示Array當前下標
value; //value表示Array當前元素
});
下面提一下jQuery的each方法的幾種經常使用的用法
Js代碼
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
而後本身寫了一個能夠自主選擇省市的,固然還能夠添一個環節反正原理差很少這裏本身就不過多地考慮了。html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="jquery-2.1.3.min.js"></script>
</head>
<body>
<form>
請選擇你的省市
<select name="selectp" id="selectp">
<option>請選擇</option>
</select>
<select name="selectc" id="selectc">
<option>請選擇</option>
</select>
</form>
<script> $(document).ready(function(){ function init(obj){ return $(obj).html("<option>請選擇</option>"); } var data={ "河北省":"衡水,邢臺,唐山,保定,石家莊", "河南省":"杭州,寧波,桂林" }; $.each(data,function(pp){ $("#selectp").append("<option>"+pp+"</option>"); }); $("#selectp").change(function(){ init("#selectc"); $.each(data,function(pp,ps){ if($("#selectp option:selected").text()==pp){ $.each(ps.split(","),function(){ $("#selectc").append("<option>"+this+"</option>"); }); } }); }); }); </script>
</body>
</html>