JavaScript(下)DOM&事件

DOM:为了满足案例需要

  1. 功能:控制html文档的内容

  2. 代码:获取页面标签(元素)对象Element

     * document . getElementById(" id值" ) ;通过元素的id获取元素对象
    
  3. 操作Element对象:

     1.修改属性值:
     	1.明确获取的对象是哪一个?
     	2.查看API文档,找其中有哪些属性可以设置
     2.修改标签体内容:
     	*属性: innerHTML
    

事件

  1. 功能:某些组件被执行了某些操作后,触发某些代码的执行。

     *造句: xxx被xxx,我就xxx
     	* 我方水晶被摧毁后,我就责备自己。
     	* 敌方水晶被摧毁后,我就夸奖队友。
    
  2. 如何绑定事件

     1.直接在html标签上,指定事件的属性(操作),属性值就是js代码
     	* 事件: onclick--- 单击事件
     2.通过js获取元素对象,指定事件属性,设置一个函数
    

案例:点击灯泡图片开/关

	分析:
		1.获取图片对象
		2.绑定单击事件
		3.每次点击切换图片
			*规则:
				如果灯是开的on, 切换图片为off
				如果灯是关的off,切换图片为on
				使用标记flag(boolean类型)来完成
 <body>
  
    <img id="light" src="../images/light_off.png">
    
    <script>
    	
    	var light = document.getElementById("light");
    	var flag = false;//false代表灯灭
    	light.onclick = function(){
    		if(flag)//判断如果灯是开着的,则关掉
    		{
    			light.src = "../images/light_off.png";
    			flag = false;
    		}
    		else////判断如果灯是关着的,则打开
    		{
    			light.src = "../images/light_on.png";
    			flag = true;
    		}
    	}
    
    </script>
  </body>

事件

  • 事件监听机制:

    *概念:某些组件被执行了某些操作后,触发某些代码的执行。
    *事件:某些操作。如:单击,双击,键盘按下了,鼠标移动了
    *事件源:组件。如:按钮文本输入框…
    *监听器:代码。
    *注册监听:将事件,事件源,监听器结合在一起。当事件源上发生了某个事件,则触发执行某个监听器代码。

  • 事件调用方法的两种方式:

      1.	在HTML标签中给事件属性定义调用的方法。
      	如:<a onclick =“fun();” ></a>//fun()为方法
      2.在js中先获取html标签对象,然后该对象调用方法
      	如:
      		html中:<a id="username" ></a>
      		  js中:document.getElementById("username").onblur = fun;
      		  //fun为方法名,注意这里调用方法不带小括号。
    
  • 常见的事件:

    1.点击事件:
    1. onclick :单击事件
    2. ondblclick :双击事件
    2.焦点事件
    1. onblur :失去焦点
    * 一般用于表单验证
    3. onfocus :元素获得焦点。.
    3.加载事件:
    1. onload :一张页面或一幅图像完成加载。
    4.鼠标事件:
    1. onmousedown 鼠标按钮被按下。
    * 定义方法时,定义一个形参,接受event对象。
    * event对象的but ton属性可以获取鼠标按钮键被点击了。
    * 0 左键 1 滑轮 2 右键
    3. onmouseup 鼠标按键被松开。
    4. onmousemove 鼠标被移动。
    5. onmouseover 鼠标移到某元秦之上。
    6. onmouseout 鼠标从某元素移开。
    5.键盘 事件:
    1. onkeydown 某个键盘按键被按下。
    2. onkeyup 某个键 盘按键被松开。
    3. onkeypress 某个键盘按键被按下并松开。
    6.选择和改变
    1. onchange 域的内容被改变。
    2. onselect 文本被选中。
    7.表单事件:
    1. onsubmit 确认按钮被点击。
    * 返回 true,提交
    * 返回false,组织提交
    * 两种写法:

    第一种:

<script>
document . getElementById(" form") . onsubmit = function(){
	//校验用户名格式是否正确
	var flag = false;
	return
	flag;
	}
</script>
<body>
<form action="#" id= "form">
</form>
</body>
	第二种写法
<script>
	function checkForm( ){
	return false ;
	}
</script>
<body>
<form action= "#" id="form" onc1ick="return checkForm();"> 
</form>
</body>
	3. onreset 重置 按钮被点击。

案例:全选,全部选,反选,鼠标移到元素之上,鼠标离开

<!DOCTYPE html>
<html>
  <head>
    <title>案例_添加和删除信息.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

	<style type="text/css">
		table{
			margin:auto;
			width: 500px;
			text-align: center;
			border: 1px solid;
		}
		td,th{
			border: 1px solid;
		}
		div {
	  		margin: 50px;
	  		text-align: center;
		}
		.over{
			background-color: pink;
		}
		.out{
			background-color: black;
		}
	</style>
  </head>
  
  <body>
  
    <div>

    	<input type="text" id="id" placeholder="请输入编号">
    	<input type="text" id="name" placeholder="请输入名称">
    	<input type="text" id="gender" placeholder="请输入性别">
    	<input id="btn_add" type="button" value="添加">
    </div>
    
    <table>
    	<caption>学生信息表</caption>
    	<tr>
			<th><input id="firstCb" type="checkbox" name="cb" ></th>
			<th>编号</th>
			<th>姓名</th>
			<th>性别</th>
			<th>操作</th>
    	</tr>
    	<tr>
			<td><input type="checkbox" name="cb" ></td>
			<td>1</td>
			<td>令狐冲</td>
			<td></td>
			<td><a href="javascript:void(0);" onclick="delTr(this);">删除</a></td>
    	</tr>
		<tr>
			<td><input type="checkbox" name="cb" ></td>
			<td>1</td>
			<td>令狐冲</td>
			<td></td>
			<td><a href="javascript:void(0);" onclick="delTr(this);">删除</a></td>
		</tr>
		<tr>
			<td><input type="checkbox" name="cb" ></td>
			<td>1</td>
			<td>令狐冲</td>
			<td></td>
			<td><a href="javascript:void(0);" onclick="delTr(this);">删除</a></td>
		</tr>
    </table>
		<div>
			<input type="submit" id="selectAll" value="全选"/>
			<input type="submit" id="unSelectAll" value="全不选"/>
			<input type="submit" id="selectRev" value="反选"/>
		</div>

    
    <script type="text/javascript">
    		/*
    		*   	全选:
    		* 			1.给单击事件绑定事件
    		* 			1.获取所有的CheckBox
    		* 			2.遍历cb,设置每一个cb为选中, checked
    		* */
    		//在页面加载完后绑定事件
			window.onload = function (ev) {
				//给全选按钮绑定单击全选事件,
				document.getElementById("selectAll").onclick = function () {
					//获取所有复选框
					var cbs = document.getElementsByName("cb");
					for (var i = 0; i <cbs.length ; i++) {
						cbs[i].checked = true;
					}
				}

				//给全部选按钮绑定单击全不选事件
				document.getElementById("unSelectAll").onclick = function () {
					//获取所有复选框
					var cbs = document.getElementsByName("cb");
					for (var i = 0; i <cbs.length ; i++) {
						cbs[i].checked = false;
					}
				}

				//给全选按钮绑定单击反选事件
				document.getElementById("selectRev").onclick = function () {
					//获取所有复选框
					var cbs = document.getElementsByName("cb");
					for (var i = 0; i <cbs.length ; i++) {
						cbs[i].checked = !cbs[i].checked;
					}
				}

				document.getElementById("firstCb").onclick = function () {
					//获取所有复选框
					var cbs = document.getElementsByName("cb");
					for (var i = 0; i <cbs.length ; i++) {
						cbs[i].checked = this.checked;
					}
				}
				//给所有tr绑定鼠标移到元素之上和移出元素时间
				var trs =  document.getElementsByTagName("tr");
				//遍历
				for (var i = 0; i <trs.length ; i++) {
					//移到元素之上
					trs[i].onmouseover = function () {
						this.className = "over";
					}
					//移出元素
					trs[i].onmouseout = function () {
						this.className = "out";
					}
				}

			}


    </script>
  </body>
</html>

发布了21 篇原创文章 · 获赞 0 · 访问量 132

猜你喜欢

转载自blog.csdn.net/qq_40631424/article/details/105275194