js中的循环是我们经常要用到的,现在进行一些归纳。
一.javascript种的循环。
1.循环对象
var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { if (o.hasOwnProperty(key)) { console.log(key); // 'name', 'age', 'city' console.log(o[key]); //'jack',20,'Beijing' } }
2.循环数组
var arr = ['Bart', 'Lisa', 'Adam']; for (var i in arr){ console.log("hello,"+arr[i]); }
或者
var a = ['A', 'B', 'C']; a.forEach(function (element, index, array) { // element: 指向当前元素的值 // index: 指向当前索引 // array: 指向Array对象本身 console.log(element + ', index = ' + index); });
可根据兴趣写回调决定回调函数中的参数
var a = ['A', 'B', 'C']; a.forEach(function (element) { console.log(element); });
循环set和map
var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { // element: 指向当前元素的值 // sameElement: 也是当前元素 // set: 指向set对象本身 console.log(element); });
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); m.forEach(function (value, key, map) { console.log(value); });
二.jquery的循环
基本是循环数组。
1.取得jquery对象后循环
$("li").each(function(){ alert($(this).text()) });
其实方法的完整形式是
$(selector).each(function(index,element))
可以根据自己的需要添加参数。
2.不取得jquery对象,直接使用$.each()方法。第一个参数是被循环的数组对象,第二个为回调函数。
var userList = [11,22,33,44]; $.each(userList,function(i,item){ console.log(i, item); });
3.遍历选择器得到的元素
$(function(){ var selector=$('ul.lang li.lang-javascript'); //var selector=$('div.testing li.lang-javascript'); console.log(selector.length); selector.each(function(i){ var _this=$(this); if(_this[0].tagName=="DIV"){ console.log(_this.html()); }else if(_this[0].tagName=="INPUT"){ console.log(_this.val()); }else{ console.log(_this.text()); } }); });