在jq里,我们用each()遍历对象
那具体怎么用呢
已知隐式迭代可以帮我们在内部循环遍历了,那为什么还要用这个呢?
因为隐式迭代把目标都设置成同一种样式或事件
如果我们这三个div要分别设置不同的样式,怎么办,这就需要each了
我们先创建三个div
<div>1</div>
<div>2</div>
<div>3</div>
语法$("div").each (function (index, domEle) { xxx;} )
$("div").each (function (index, domEle) {
xxxxxxxx;
} )
里面的回调函数,有两个参数,index是获取每个元素的索引号,demele是每个DOM对象,注意,这里不是jq对象。
$("div").each(function(index, domEle) {
console.log(index);
console.log(domEle);
})
我们先来打印一下看看结果
//0
//<div>1</div>
----------------------------
//1
//<div>2</div>
----------------------------
//2
//<div>3</div>
可以看到循环了3次,并依次打印了当前循环中数值的结果
还有另外一种写法。
$.each($("div"), function(i, ele) {
console.log(i);
console.log(ele);
}
我们可以将遍历的目标写在each之后,都是可以的。
var arr = ["red", "green", "blue"];
$.each(arr, function(i, ele) {
console.log(i);
console.log(ele);
}
示例如上述代码,对arr进行一个遍历。
第三种写法
$.each({
name: "andy",
age: 18
}, function(i, ele) {
console.log(i); // 输出的是 name age 属性名
console.log(ele); // 输出的是 andy 18 属性值
})
我们也可以返回对象