1.静态 标签绑定函数 事件
触发事件执行的 js函数时,把标签的对象当成实参传入函数内,关键字是this,在js中调用对象的属性获取到标签的文本信息
this默认是一个windows,
只有在标签内使用,才实例化成当前标签对象。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--// 绑定事件 标签绑定 js函数 -->
<div class="c1" onclick="foo(this)" >ABC</div>
<!--标签绑定函数,要把this作为参数传入到函数内部去,把标签本身作为document对象传入到函数内。-->
<script>
function foo(self) {
console.log(self.innerHTML);
}
</script>
</body>
</html>
2、document对象绑定事件
1 js代码中 绑定标签的两种方式,
通过js document查找标签,cs语法查找标签,找到固定的标签的名字,使用innerHTML属性获取到标签的文本信息,此方法麻烦
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="c1" id = 'd1'>ABC</div>
<script>
var ele = document.getElementById('d1')
ele.onclick = function () {
console.log(this.innerHTML)
// 以点击触发的标签作为使用关键字 this 替代
}
</script>
</body>
</html>
3、数组绑定对象
3 1,2两种都是对单个或者少量标签绑定事件,对某个父级标签下全部标签绑定时间,在js代码中查找标签获取数组,使用for 循环出数组索引,变量名加索引值相当于函数名等于匿名函数代码,
在代码内 标签对象不使用变量名加索引的替代,而是使用this代表当前标签的对象,当for循环开始i索引所代表的标签名直接赋值给this,
并存储起来,标签被触发,直接运行该标签的js代码事件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
</ul>
<script>
var aa = document.querySelectorAll('ul li')
for (var i = 0; i < aa.length; i++) {
aa[i].onclick =function () {
console.log(this.innerHTML)
// 循环的值,不等于触发的值,
// i 等于被点击的标签的索引时,才会被触发,标签对象传入到函数内。
}
}
</script>
</body>
</html>
![image-20230314121913003]()