JS事件、Bom对象和Dom对象

JS事件

事件

html处理程序

特点
				与元素耦合度太高
			<标签名 onclick = "函数"></标签名>
		<button type="button" onclick="test()" onmouseout="console.log('鼠标移开')">html处理程序</button>

DOM0级处理程序

特点
只能为同一个元素的同一个事件设定多个处理程序(覆盖)
1.获取事件源
var 事件源 = document.getElementById(“事件源的id属性值”);
2.绑定事件
事件源.onmouseout = function(){

}

		<button type="button" id="btn1">DOM0级处理程序</button>
//DOM0级处理程序
			//获取事件源
			var btn = document.getElementById("btn1");
			//绑定事件
			btn.onclick = function(){
				console.log('DOM0级处理程序1');
			}

DOM2级

特点
				可以为同一个元素绑定多个事件
			方法
				addEventListener
					1.获取事件源
						var 事件源 = document.getElementById("事件源的id属性值");
					2.绑定事件
						事件源.addEventListener('click',function(){
							......处理代码
						});
					或
					function test(){
						......处理代码
					}
					2.绑定事件
						事件源.addEventListener('click',test);
				
				removeEventListener
					1.获取事件源
						var 事件源 = document.getElementById("事件源的id属性值");
					2.移除监听的事件
						事件源.removeEventListener('click',函数名);
		<button type="button" id="btn2">DOM2级处理程序</button>
//DOM2级处理程序
			var btn2 = document.getElementById("btn2");
			//绑定事件的监听
			btn2.addEventListener('click',function(){
				console.log("DOM2级处理程序1");
			});
			btn2.addEventListener('click',function(){
				console.log("DOM2级处理程序2");
			});

Bom

系统对话框

(1)消息框:alert, 常用。
alert() 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。
(2)输入框:prompt,返回提示框中的值。
prompt() 方法用于显示可提示用户进行输入的对话框。
参数(可选):
第一个参数:要在对话框中显示的纯文本。
第二个参数:默认的输入文本。
(3)确认框:confirm,返回 true/false.
confirm() 方法用于显示一个带有指定消息和 OK 及取消按钮的对话框。

window窗口

打开窗口
window.open(); 打开空窗口
window.open(地址); 打开网页,可以是在线地址或本地地址

关闭窗口
window.close(); 关闭当前窗口

时间函数

setTimeout
在指定毫秒数之后执行某个函数 返回唯一标识 方便关闭
var id = setTimeout(函数名,毫秒数);

setInterval
以指定毫秒数为周期,循环执行 返回唯一标识 方便关闭
var id = setInteval(函数名,毫秒数);

clearInterval(id);
清除时间函数

<script type="text/javascript">
			//在指定毫秒数后执行某个函数
			function fun1(){
				console.log("卢本伟牛逼")
			}
			setTimeout(fun1,2000);
			
	  		//指定毫秒数为周期,循环执行
			setInterval(fun1,2000);
			
      	</script>

history

history

		​	history对象的方法:
		​	back():加载 history 列表中的前一个 URL。
		​	forward():加载历史列表中的下一个 URL。当页面第一次访问时,还没有下一个url。
		​	go(number|URL): URL 参数使用的是要访问的 URL。而 number 参数使用的是要访问的 URL 在 History 的 URL 列表中的相对位置。go(-1),到上一个页面
		
			属性
				length

location

location
属性
window.location.href; 获取当前网页的地址
window.location.href = “地址”; 跳转
方法
reload 重新加载页面
replace 选择一个页面替换当前页面

Dom

获取Dom对象

     	getElementById()           根据id获取dom对象,如果id重复,那么以第一个为准
		getElementsByTagName()     根据标签名获取dom对象数组
		getElementsByClassName()   根据样式名获取dom对象数组
		getElementsByName()        根据name属性值获取dom对象数组,常用于多选获取值
//getElementById() 
			function testById(){
				var p = document.getElementById("p1");
				console.log(p);
			}
			//根据标签名获取dom对象数组
			function testByName(){
				var hobbys = document.getElementsByName("hobby");
				console.log(hobbys);
			}
			
			//根据样式名获取dom对象数组
			function testByTagName(){
				var inpts = document.getElementsByTagName("input");
				console.log(inpts);
			}
			
			function testByClass(){
				var prs = document.getElementsByClassName("para");
				console.log(prs);
			}

创建,插入节点

	创建节点的方法
			createElement()创建一个新的节点,需要传入节点的标签名称,返回创建的元素对象
			createTextNode()创建一个文本节点,可以传入文本内容
			innerHTML也能达到创建节点的效果,直接添加到指定位置了
			
	插入节点
			write()将任意的字符串插入到文档中
			appendChild()向元素中添加新的子节点,作为最后一个子节点
			insertBefore()向指定的已有的节点之前插入新的节点newItem:要插入的节点exsitingItem:参考节点   需要参考父节点	 
                //方式一
				//创建新的段落
				 var newP = document.createElement("p");
				创建一个文本节点
				 var newText = document.createTextNode("段落块级元素");
				//将文本追加到元素中
				 newP.appendChild(newText);
				//将元素添加到指定位置
				 div.appendChild(newP);
				
				//方式二
				//创建新的段落
				var newP = document.createElement("p");
				//给元素设置内容
				newP.innerHTML = "新的节点";
				//将元素添加到指定位置
				 div.appendChild(newP);
				
				//方式三
				var str = "<p>new段落</p>";
				div.innerHTML += str;

间接节点查询

        childNodes      返回元素的一个子节点的数组
		firstChild      返回元素的第一个子节点
		lastChild      返回元素的最后一个子节点
		nextSibling      返回元素的下一个兄弟节点
		parentNode      返回元素的父节点
		previousSibling      返回元素的上一个兄弟节点
	//返回元素的一个子节点的数组
			var div = document.getElementById("mydiv");
			console.log(div.childNodes);
			
			//返回元素的一个子节点的数组
			console.log(div.firstChild);
			
			//返回元素的最后一个子节点
			console.log(div.lastChild);
			
			// 返回元素的下一个兄弟节点
			var span = document.getElementsByTagName("span")[0];
			console.log(span.nextSibling);
			
			//parentNode
			console.log(span.parentNode);
			
			//返回元素的上一个兄弟节点
			console.log(span.previousSibling);

删除节点

删除节点
			removeChild();    先找到父节点    操作删除
			需要被删除的子节点.parentElement.removeChild(需要被删除的子节点)
function delNode(){
				//获取需要被删除的节点对象
				var pro = document.getElementById("programmer");
				pro.parentElement.removeChild(pro);
			}

表单

获取表单

       1、document.表单名称
		2、document.getElementById(表单 id);
		3、document.forms[表单名称]
		4、document.forms[索引]; //从 0 开始 
<body>
		 <form id='myform' name="myform" action="" method="post"></form>
		 <form id='myform2' name="myform2" action="" method="post"></form>
		 
		 <script type="text/javascript">
		 	//document.表单名称
			console.log(document.myform2);
			
			// document.getElementById(表单 id);
			console.log(document.getElementById("myform"));
			console.log("========");
			//3、document.forms[表单名称]
			console.log(document.forms['myform']);
			console.log(document.forms[1]);
		 </script>
	</body>

获取表单元素

获取数据
			表单元素
				节点对象.value;        取值
				节点对象.value = 值;   设置值
				文本框,密码框,文本域......S
				
			非表单元素
				节点对象.innerHtml;       取值
				节点对象.innerHtml = 值;  设置值
				
			1)、通过 id 获取:document.getElementById(元素 id);
			2)、通过 form.名称形式获取: myform.元素名称;    name属性值
			3)、通过 name 获取 :document.getElementsByName(name属性值)[索引] // 从0开始
			4)、通过 tagName 数组 :document.getElementsByTagName('input')[索引] // 从0开始

表单提交

提交表单
			(1)使用普通button按钮+onclick事件+事件中编写代码:
				获取表单.submit();
			(2)使用submit按钮 + onclick="return 函数()" +函数编写代码: 
		​		最后必须返回:return true|false;
			(3)使用submit按钮/图片提交按钮 + 表单onsubmit="return 函数();" +函数编写代码: 
		​		最后必须返回:return true|false;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值