each(callback):每个匹配的元素都会执行该函数,如下例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>each(callback)函数</title>
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<input type="checkbox" name="hobby" value="1" checked="checked"/>足球
<input type="checkbox" name="hobby" value="2"/>篮球
<input type="checkbox" name="hobby" value="3" checked="checked"/>乒乓球
<script>
var result = "";
$("input[type=checkbox]").each(function() {
if(this.checked){
result =result+ ","+this.value;
}
});
if(result != ""){
result = result.substr(1);
}
console.log(result);
</script>
</body>
</html>
注意:参数实参所指函数中的this 指代的是 DOM 对象而非 jQuery 对象; 如果在函数中使用jQuery对象,可以通过 $(this) 方式进行转换。
each(object[, callback]):用于遍历对象(可以是jQuery对象)和数组,其中object表示待遍历的jQuery对象或数组;callback表示每个成员/元素执行的回调函数,如下例子:
1、遍历数组:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>遍历数组</title>
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<script>
var names = ["Tom","Jim"];
$.each(names, function(index, value){
console.log(index + ":" + value );
});
</script>
</body>
</html>
2、遍历jQuery对象:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>遍历jQuery对象</title>
<script src="js/jquery-3.3.1.js"></script>
</head>
<body>
<input type="checkbox" name="hobby" value="1" checked="checked"/>足球
<input type="checkbox" name="hobby" value="2"/>篮球
<input type="checkbox" name="hobby" value="3" checked="checked"/>乒乓球
<script>
var result = "";
$.each($("input[type=checkbox]"), function(){
if(this.checked){
result =result+ ","+this.value;
}
});
if(result != ""){
result = result.substr(1);
}
console.log(result);
</script>
</body>
</html>
each(callback)与each(object[, callback])区别:
1、调用对象不同:前者必须使用jQuery对象调用;后者只能使用$调用;
2、遍历对象不同:前者遍历的是jQuery对象;后者还可以遍历数组等非jQuery对象;