<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
<script type="text/javascript" src="js/jquery-3.2.1.min.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>
//each(callback),使用jQuery对象调用,遍历jQuery对象,每个匹配的元素都会执行该函数参数实参所指函数中的this 指代的是 DOM 对象而非 jQuery 对象
$("[name='hobby']").each(function (){//只能遍历jQuery对象
console.log(this);
});
//each(object[], callback):用于遍历对象(可以是jQuery对象)和数组,其中object表示待遍历的jQuery对象或数组;callback表示每个成员/元素执行的回调函数
$.each(["Jim","Tom","Kate"],function(i,value){//遍历数组
console.log(i+","+value);
});
$.each($("[name='hobby']"),function(i,value){//遍历jQuery对象
console.log(i+","+value);//拼接后value变为String,故结果不同
});
$.each($("[name='hobby']"),function(i,value){
console.log(this);
});
</script>
</body>
</html>
结果:
区别:
1.调用对象不同:前者必须使用jQuery对象调用;后者只能使用$调用;
2.遍历对象不同:前者遍历的是jQuery对象;后者还可以遍历数组等非jQuery对象;