普通函数调用
对于each函数传递一个参数是时 两个this都指向当前元素对象
// const that = this;
$("input[name='ksxl']").each(function (index) { //遍历每个单选框
console.log(this);
if ($(this).prop('checked')) {
// console.log(that);
console.log(this);
}
})
对于each函数传递一个参数是时 index指向当前元素下标 item指向当前元素对象 两个this都指向当前元素对象
// const that = this;
$("input[name='ksxl']").each(function (index,item) { //遍历每个单选框
console.log(this);
if ($(this).prop('checked')) {
// console.log(that);
console.log(this);
console.log(item);
}
})
如何改变this指向 让它指向全局页面
1.改用箭头函数调用
// const that = this;
$("input[name='ksxl']").each((index) => { //遍历每个单选框
console.log(this);
if ($(this).prop('checked')) {
// console.log(that);
console.log(this);
}
})
注意:箭头函数内部是没有this的指向的,箭头函数中的this实际上是向外层一级一级的查找作用域中的this(直到this有定义)
结果:第一个this指向他上级
2.用把全局this赋值给that
const that = this;
$("input[name='ksxl']").each(function (index) { //遍历每个单选框
console.log(that);
if ($(this).prop('checked')) {
console.log(that);
}
})
结果:两个that都指向全局页面